三层架构3-tier architecture
一、什么是三层?
首先要知道三层不是一项实际的技术,他是一种设计软件的思想。这种思想就是把软件分为三层、或者说三个类,分别是表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。分层的目的是为了高内聚,低耦合、便于更改维护。
每个层各司其职、相互只是调用关系、这样好处就是如果要更改界面、那就改UI层、其他层都不用动、或者以后软件换数据库、那么改DAL层就好。这些其实都是面向对象思想、分层思想,本质就是减少联系、做到可更换,不用一点坏了就要换全部、分层就是这种思想。
二、三层功能
1、表现层(UI):
通俗讲就是展现给用户的界面,他担当者接受用户信息和给用户显示用户信息的功能,即用户在使用一个系统的时候他的所见所得。
2、业务逻辑层(BLL):
针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理、最明显的就是三大语句、判断、循环、多分支、这个一定是在逻辑层的。
3、数据访问层(DAL):
该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。
三、结构体系
三层架构的体系结构:
- 表示层和业务逻辑层之间用对象模型的实体类对象来传递数据,
- 业务逻辑层和数据访问层之间用对象模型的实体类对象来传递数据,
-
数据访问层通过.NET 提供的 ADO.NET 组件来操作数据库,或者利用 SQLServer 数据库服务器的存储过程来完成数据操作,
三层架构的体系结构如图所示。
四、优点:
1、解耦。
上一层只依赖于下一层,如果测试下一层没有问题,那么问题就只可能出现在本层了。便于发现和改正BUG。
2、简化复杂问题。
就比如tcpip协议的四层模型或OSI七层模型,各层分工明确,将一个复杂问题简化了。
3、便于系统维护/升级。
各层间通过接口解耦,接口与实现分离,从而可以非常方便的替换掉实现,或者升级实现等。
4、逻辑复用。
例如原来基于B/S开发的程序现在要改成C/S,那么只要业务层的接口没有改变,那么业务层和数据层都可以直接复用。在如,只要数据访问层接口不变,那么使用便可以有对不同数据库的实现。
5、有利于标准化。
便于团队开发。只要各层接口在开发前规定好,那么各层可以独立开发,进化或维护。
6、方便部署。
将各层开发成组件,则可以独立部署。
7、安全性高。
用户端只能通过业务逻辑层来调用数据访问层,减少了入口点,把很多危险的系统功能都屏蔽了。
五、缺点:
1、降低了系统的性能。
这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。
这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码
3、增加了代码量
增加了工作量
六、参考资料
1、https://blog.csdn.net/u010191034/article/details/24588675
2、百度百科