什么是三层架构?
三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的目的即为了“高内聚低耦合”的思想。
数据访问层
- DAL的作用
从数据源加载数据(select)
向数据源写入数据(Insert/Update)
从数据源删除数据(Delete) - DAL 中常用的技术(为了和数据源打交道)
ADO.NET+SQL语句
O/R Mapping框架 Nhiberate(可跨数据库)
访问SQL Server数据库时 Linq to SQL
显示层
- UI的作用
向用户展现特定业务数据。
采集用户的输入信息和操作指令。 - UI设计的原则
用户至上,兼顾简洁。(用户需要什么就做什么;在满足用户的要求下,越简单越好。) - UI众常用的技术
WindowsForm:Form、Control
ASP .NET:aspx、ascx、master、html
业务逻辑层
- BLL的作用
从DAL中获取数据,以供UI显示用。
从UI中获取用户指令和数据,执行业务逻辑。
从UI中获取用户指令和数据,通过DAL写入数据源。 - BLL的职责机制
UI->BLL->UI
UI->BLL->DAL->BLL->UI
什么情况下需要使用?
不需要的情况:1业务逻辑简单,2没有真正的数据存储层。
需要的情况:当业务复杂到一定程度,当数据存储到相应的数据库或独立数据存储介质。把数据访问独立数据库单独存在,把业务独立UI单独存在。
优缺点
优点
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
6、结构更加的明确
7、在后期维护的时候,极大地降低了维护成本和维护时间
缺点
1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
3、增加了开发成本。