软件开发的3层架构和多层架构的概念详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件开发的3层架构和多层架构的概念详解
1 :三层架构:
1)数据访问层:DAL:用于实现与数据库的交互和访问,从数据库猎取数据或保存数据到数据库的部分。
2)业务规律层:BLL:业务规律承上启下,用于对上下交互数据进行规律处理,实现业务目标。
3)表示层:Web主要实现和用户的交互,接受用户或返回用户恳求的数据结果的呈现,而详细的数据处理则会交给业务规律层和数据访问层去处理。
4)业务实体Modeh用于封装实体类数据结构,一般用于映射数据库的数据表或视图,用以描述业务中客观存在的对象。
Model分别出来时为了更好地解耦,更好的发挥分层、复用、扩展增加敏捷性。
5)通用Common:通用的帮助工具类(数据校验、加密解密、缓存处理等)
6)数据库访问类时对ADONET的封装,封装了一些常用的重复的数据库操作。
微软的企业库SQLHelper.cs,为DAL供应访问数据库的帮助工具。
数据摩
2:三层架构:
(高)内聚:一个模块内各个元素彼此相关联的紧密程度
(低)耦合:软件结构内不同模块之间依靠程度的度量。
优点1:三层结构将表示部分和业务规律部分根据客户层和应用服务器分别,客户端和应用服务㈱、应用服务器和数据库服务器之间的通信以及异构平台之间的数据交换都可以通过中间件或者相关程序来实现。
复用降低、周期缩短、维护便利。
优点2:分层结构将数据访问和规律操作都集中到组件中,增加了系统的复用性。
CS. BS 系统通用底层。
不管是、WINFORM、VVebService
优点3:系统的扩展性大大增加。
缺点:分层多开发工作量大。
数据不直接提取降低性能。
级联修改,表示层增加一个功能。
3:三层架构实例演示:
1:新建》项目分其它类型项目今ViSUaIStlIdi。
解决方案今保存:
2:解决方窠今添加》新建项目)其它语言Visual C#今类库
3:详细项目)属性6程序集名称+默认命名空间
程序集名称:指定将包含程序集清单的输出文件的名称,即最终生成的文件名。
默认的命名空间:指定添加到项目中的文件的基命名空间。
为了统一,一次设置项目的前缀为公司缩写等。
这样每次在项目中添加类文件时,类文件的命名空间的前最就会自动带上MatiCSOft.顶级命名空间。
4:详细项目分里史添加引用分项目6保存就可应用
m a固固回国国》
二解决方案'EyFirstThreeLayer'菽个项目
司M BLL
E , IiSti Properties
⅛∙∙∙ Ld引用
图Product, cs
B -Common
E- [⅛⅛ Properties
⅛∙∙∙ Sa引用
酉Function, cs
-.> D Λ.. ∖I∙b∖
L‹j APP-D“a
B ∖βa J∕Bin
匚M<ti cιoft.BUL ai
/ Uaiticsoft. BLL pdb
& Baticsoft. Common. dll
闰Uaticsoft. CoMon. pdb
W Uaticsoft.DALdll
⅛ Haticsoft.DALpdb
Q Maticsoft.DBUtility. dll
国Maticsoft. DBUtxlity. pdb
< Uaticsoft. Model. dll
组Maticsoft. Model. pdb
θ ◎CssStylt
W LLJ >*M∙s
A¾ Styl∙Sh∙∙tl. css
Ξ g Product
⅛∙∙三J AddCollege. aspx
⅛∙∙∙L11AllCollege. aspx
由…L U Show. aspx
B ∙国Default. aspx
jj> Web. config
S DAL
E U⅛ Properties
Ξ 3引用
-ODBUtility
∙□ lod∙l
System ∙□ Syst∙m. Data ∙<□ Syxttm. Xml 闻Pro如ct. cs 3 3)DBUtility ⅛∙∙ Properties ⅛∙∙∙囱引用图DbHelperSQL. cs
白…d]Model
[±] , Properties
E N引用
当Pro如ct. cs
HnaDeSPd8 Haticsoft.DButility
/// <sunκ>ary>
///数据访问抽票基础类 /// <∕suπβwry>
public class DbHelperSQL
看符阜Qeb.COnfi 8未配置).可以动态更改COnneCtigString 支持多数 public DbHelperSQL()∣Γ77∣
/// <su≡Mry>
///返回一个给定的青词语句的结果柒合 /// <∕suD∞ry>
public SqlDataRea4er ExecuteReader (string sxιl)Γ771 /// <sunn»ry> ///无返回的宣询语句 /// <∕suπ≡>ary>
public int EXCCUteNOJTQUery(String SQl)
int resultNum = 0; try
s<)lcon. OpenO;
Sqkrod = new SqlCoiTmwdGql. sqlcon); result Num=sglcπκL EjccuteNorCugryO; I return rcsultNum. ∣ )1 ------------------------------ 1 catch (SqlException ex)
throw new Exception (ex.Iessage, ex), finally sqlcon. CloseO.
)
}
4:基于工厂模式的三层结构模型:
解决方案9个项目及其描述 序号 项目名称 类型 描述
1 BLL 类库项目 业务规律层
2 Common 类库项目 通用类库
3 DALFactory 类库项目 抽象工厂
4 DBUtiIity 类库项目 数据库操作类
5 IDAL 类库项目 数据库访问层抽象接口
6 Model
类库项目 数据实体
7 OracleDAL
类库项目
基于OniCle 的数据访问层 8
SQLServerDAL 类库项目 基于SQLSerVer 数据访问层
9 Web
VVeb 表示层
业务实体
层之间调用关系:Web∙>BLL, BLL调用DALFactory来打算要创建哪个DAL的对象的接口,然后返回给BLL的是IDAL对象。
IDAL接口是一系列“功能”的声明和名单,接口并没有实现细节,只是一些功能方法的定西。
SQLSCrVerDAL和OraCIeDAL均继承自IDAL 接口,并实现了接口定义的全部功能。
相当于全部的数据访问层被封装起来了,暴露在外面的就是IDAL接口被调用。
MOdel作为一种数据结构(类似C中的结构体)在各层之间传递和使用。