三层架构是一种常见的一种架构模式,分层模式是将解决方案的组件分隔到不同的层中,每一层的组件应保持内聚性,每一层都应该与其下的每层保持松耦合。
三层架构中的三层指的是表示层、业务逻辑层、数据访问层;
三层的具体作用:
表示层:位于最外层,使用户能够直接访问,用于显示数据和接受用户输入的数据,为用户提供一种交互操作的界面。
业务逻辑层:其主要功能是提供对业务逻辑处理的封装,在业务逻辑层中,通常会定义一些接口,表示层能够通过业务逻辑层的接口实现各种操作。
数据访问层:该层实现对数据的保存和读取操作、数据访问,可以访问数据库、文本文件或者XML文档等。
关系图如下:
分层的原则:
1.上层依赖其下一层、依赖关系不跨层
上一层调用下一层所得到的执行结果完全取决于下一层中的代码实现,上一层无法进行控制
2.下一层不能调用上一层
上一层调用下一层功能,下一层不能调用上一层功能,下一层为上一层提供服务,而不能使用上一层提供的服务
3.下一层不依赖上一层
下一层代码决定了上一层代码获取的内容,即上一层不管如何发生变化,对于其调用的下一层的业务是不会发生变化
4.在上一层中不能出现下一层的概念
简单来说,就是业务逻辑层不能出现数据访问层的代码,以此来确保每一层分工的明确性
分层的特点:
a.上一层不知道下一层的存在
b.每一层就知道紧邻下一层的存在,而不知道另外下一层的存在
c.上一层使用下一层提供的服务,并为下一层提供数据
分层的优势:
1、职责划分明确,开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
6、结构更加的明确
7、在后期维护的时候,极大地降低了维护成本和维护时间
分层的劣势:
1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
3、增加了开发成本。