三層架構初探

來源:互聯網
上載者:User
三層架構

    三層架構(3-tier application) 就是將整個業務應用劃分為:表現層(UI)、商務邏輯層(BLL)、資料訪問層(DAL),區分層次的目的即為了“高內聚,低耦合”的思想,方便程式的擴充和維護。

    展示層(UI)

    通俗講就是展現給使用者的介面,即使用者在使用一個系統的時候他的所見所得,主要對使用者的請求接受,以及資料的返回,為用戶端提供應用程式的訪問。

    商務邏輯層(BLL)

    針對具體問題的操作,也可以說是對資料商務邏輯處理。主要負責對資料層的操作。也就是說把一些資料層的操作進行組合。

    資料訪問層(DAL)

    該層所做事務直接操作資料庫,針對資料的增添、刪除、修改、更新、尋找等。主要看你的資料層裡面有沒有包含邏輯處理,實際上他的各個函數主要完成各個對資料檔案的操作。而不必管其他動作。

包圖


    Entity為實體類,它的作用是與資料庫表中的欄位一一對應,並在三層中傳遞資料的作用。

代碼說明     UI層

    以登入驗證是否存在此使用者為例,登入按鈕代碼:

'確認操作Private Sub cmdOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdOk.ClickDim bllUserinfo As New ChargeSystemBLL.bll_User_infoDim modelUserinfo As New DataModel.dm_User_info '擷取使用者名稱和密碼modelUserinfo.UserID = txtUID.TextmodelUserinfo.UserPWD = txtPWD.TextTry'檢測使用者是否存在If bllUserinfo.IsExist(modelUserinfo) = False ThenMsgBox("This user is not belong to database", MsgBoxStyle.OkOnly, "User is inexistent")Exit Sub End IfCatch ex As ExceptionMsgBox("發生錯誤:" & ex.Message & "請與管理員聯絡以解決問題", MsgBoxStyle.OkOnly, "抱歉")Exit SubEnd TryEnd Sub 

BLL層

Public Class bll_User_info    Dim sqlUserInfo As New ChargeSystemDAL.dal_User_info    '查看是否存在此使用者    Public Function IsExist(ByVal modelUserInfo As DataModel.dm_User_info) As Boolean        Return sqlUserInfo.IsExist(modelUserInfo)     End Function                                                                                                    End Class
DAL層
Dim model_User_info As New DataModel.dm_User_info    '連接字串    Dim connString As String = _        "Persist Security Info=true;Data Source=192.168.24.158;Initial Catalog=CR_Charge_SYS;User ID=sa;PWD=123456;"    '查看是否存在此使用者    Public Function IsExist(ByVal model_User_info As DataModel.dm_User_info) As Boolean        Dim sqlconn As New SqlConnection(connString)        Dim sqltxt As String = _                "select * from User_info where UserID = @userID"        Dim sqlcmd As New SqlCommand(sqltxt, sqlconn)        '添加參數        Dim sqlParam As New SqlParameter("@userID", model_User_info.UserID)        sqlcmd.Parameters.Add(sqlParam)        '開啟串連        sqlconn.Open()        '閱讀資料        Dim sqlReader As SqlDataReader        sqlReader = sqlcmd.ExecuteReader        sqlReader.Read()        Try            If sqlReader.HasRows = True Then                Return True            Else                Return False            End If        Catch ex As Exception            MsgBox(ex.Message)            Return False        Finally            sqlconn.Close()            sqlconn = Nothing            sqlReader.Close()        End Try    End Function
Entity

Public Class dm_User_infoPrivate _userid As StringPublic Property UserID As StringGetReturn _useridEnd GetSet(ByVal value As String)_userid = valueEnd SetEnd PropertyEnd Class
資料傳遞

    使用者在UI層輸入資料,輸入的資料計入Entity中,DAL層使用Entity中的資料對資料庫進行增刪改查操作,返回的結果傳遞給BLL層,BLL層經過處理結果返回給UI層.

文尾

    這隻是最簡單的三層,沒有添加設計模式等其他因素,僅供輔助理解三層。
如果哪裡表達不清楚,或是有誤,歡迎指正。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.