什么是三层架构?
三层架构 通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的目的即为了“高内聚,低耦合”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或称为领域层)、表示层。
为什么要用三层架构?
区分层次的目的是为了高内聚,低耦合
好处:
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
不足:
1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
什么时候使用三层架构?
业务逻辑复杂到一定程度时使用三层架构
业务逻辑简单、没有真正的数据存储层,也就不需要数据访问层,也就不需要使用三层架构了
三层如何划分?
多层结构划分方式:物理/逻辑
物理:显示层、业务层、数据层
逻辑:UI/BLL+DAL/DB
结构
三层架构每一层的作用分别是什么?
UI层:
向用户展现特定的业务数据
采集用户的输入信息和操作
BLL层:
从UI中获取用户指令和数据,执行业务逻辑
从UI中获取用户指令和数据,通过DAL写入数据源
从DAL中获取数据,以供UI显示用
BLL层职责机制:
UI⇄BLL⇄UI
UI⇄BLL⇄DAL⇄BLL⇄UI
DAL层:
从数据源加载数据(Select)
向数据源写入数据(Insert/Update)
从数据源删除数据(Delete)
各层之间的引用关系?
UI→BLL→UI
具体应用原则?
1.UI只负责现实和采集用户操作,不包含任何的业务相关的逻辑处理。
2.BLL负责处理业务逻辑。通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理,处理完成后,返回必要数据给UI。
3.DAL只提供基本数据访问,不包含任何业务相关的逻辑处理。
4.如果需要增加实体类Model时,UI、BLL、DAL都需要引用Model。