三层架构初探
2012-01-14 11:17
567 查看
三层架构
三层架构(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.Click Dim bllUserinfo As New ChargeSystemBLL.bll_User_info Dim modelUserinfo As New DataModel.dm_User_info '获取用户名和密码 modelUserinfo.UserID = txtUID.Text modelUserinfo.UserPWD = txtPWD.Text Try '检测用户是否存在 If bllUserinfo.IsExist(modelUserinfo) = False Then MsgBox("This user is not belong to database", MsgBoxStyle.OkOnly, "User is inexistent") Exit Sub End If Catch ex As Exception MsgBox("发生错误:" & ex.Message & "请与管理员联系以解决问题", MsgBoxStyle.OkOnly, "抱歉") Exit Sub End Try End 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_info Private _userid As String Public Property UserID As String Get Return _userid End Get Set(ByVal value As String) _userid = value End Set End Property End Class
数据传递
用户在UI层输入数据,输入的数据计入Entity中,DAL层使用Entity中的数据对数据库进行增删改查操作,返回的结果传递给BLL层,BLL层经过处理结果返回给UI层.文尾
这只是最简单的三层,没有添加设计模式等其他因素,仅供辅助理解三层。如果哪里表达不清楚,或是有误,欢迎指正。
相关文章推荐
- 软件架构设计之分层架构(三层架构)
- 深入探讨:如何理解.Net的三层架构
- Android Audio System 架构初探:Java层
- MVC项目实践,在三层架构下实现SportsStore-11,使用Knockout实现增删改查
- Android开发学习之路--Android系统架构初探
- Spring_SSH整合之_架构的历史(三层架构整合JSP+MySQL+JavaBean)_2
- 三层架构(3-tier architecture)
- Delphi三层架构的一种方法
- J2EE三层架构简介
- 架构(三层架构)、框架(MVC)、设计模式三者异同点
- 三层架构实例
- 关于三层架构的一点点看法
- 三层架构之泛型抽象工厂
- 三层架构学习实例
- Windows Phone架构下CONTENT及开发初探
- 从三层架构到MVC
- 我的架构经验小结(二)-- 关于三层架构
- 【三层架构】搜索模块
- 三层架构基础
- 小菜编程成长记(十一 三层架构,分层开发)