前言:
之前就一直听人三层还有七层,最近几天终于好好学习了一番三层,下面总结一下学习到关于三层的知识。
一、什么是三层?
三层架构就是将整个业务应用划分为:显示层UI、业务逻辑层BLL、数据访问层DAL。
UI(显示层):主要是指展示给用户的界面,即用户在使用一个系统的时候他的所见所得。
BLL(业务逻辑层):UI层与DAL层之间的桥梁。实现业务逻辑,是对数据层的操作。业务逻辑具体包含:验证、计算、业务规划等等。
DAL(数据访问层):是对数据库的操作,而不是数据。实现对数据库的增删改查。
如何将三层联系起来?
1>单向引用
2>Entity(实体层)
Entity在三层架构中的作用:
1、实现面向对象思想中的“封装”。
2、贯穿于三层,在三层之间传递数据。
3、每一层(UI->BLL->DAL)之间的数据传递是靠变量或实体作为参数来传递的,这样就构造了三层之间的联系,就完成了功能的实现。
Entity(实体层):它不属于三层中的任何一层,但是它是必不可少的一层。
三层及实体层之间的依赖关系:
2、为什么使用三层?
使用三层架构的目的:解耦
任何一层发生变化都不会影响到另外一层。
优点:
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖,即解耦;
4、有利于标准化;
5、利于各层逻辑的复用。
6、结构更加的明确
7、在后期维护的时候,极大地降低了维护成本和维护时间
缺点:
1.降低了系统的性能(通过中间层访问,效果不言而喻);
2.有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
3.开发成本增加。
3、与两层的区别
两层:
当任何一个地方发生变化时,都需要重新开发整个系统。多层发在一起,分工不明确耦合度高--难以适应需求变化,可维护度低、可扩展性低。
三层:
变化发生在哪一层,只需要修改该层,不需要更改整个系统。层次清晰,分工明确,每层之间耦合度低--提高了效率,适应需求变化,可维护性高,可扩展性高。
总结:
三层的根本目的是为了解耦,降低耦合性,增加内聚性。视频学起来很简单,但是还有很多东西需要通过自己的实践去掌握。