这段时间一直在等级考试中徘徊不定,对于三层一直没能够好好的总结。终于C++考试过去,虽然战况比较惨烈……C++的总结还是要写的。开始三层之前,一直不知道三层为何物,今天我们就来揭开它的面纱。
何谓三层?
三层架构,顾名思义,分为三层:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。下面让我们来依次认识一下吧!
(1)表现层(UI)
主要是指与用户交互的界面,向用户展现特定业务数据,采集用户的输入信息和操作。表现层就如同服务员一样和蔼可亲,直接与我们交流,用户至上,养眼大方。
(2)业务逻辑层(BLL)
业务逻辑层负责用户在UI层里提出的问题的操作,对其进行处理。它可以从DAL层获取数据,返回给UI层显示;还可以从UI中获取用户信息,通过DAL层写入数据库;也可以从UI层收集用户的指令和数据,执行业务逻辑。业务逻辑层就是如同服务员和采购员之间的桥梁,服务员(UI)向厨师(BLL)提供用户的菜单,厨师负责一系列的做菜,而厨师将所需的食材报告给采购员(DAL)。
(3)数据访问层(DAL)
DAL直接负责对数据库的操作,实现对数据库的增删改查。
附图一张:
另增一层:实体层:一般实体层贯穿于整个架构中,在三层之间传递数据。有人说它“上蹿下跳”,同哪一层都有关系。其实它的存在,体现了面向对象的封装,实体层把所有的实体(属性)封装在一层,方便了代码的维护。说白了,它就是一个类而已。
看一下在三层中数据传递的方向:
使用三层的好处:解耦!
同设计模式一样,我们使用三层的目的也是为了解耦。
优点:解耦带来的好处不言而喻,结构更加明确,降低了依赖,易维护和扩展。
缺点:1.降低了系统的性能(通过中间层访问,效果不言而喻);
2.有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
3.开发成本增加。
理论部分就到这里了,实践部分敬请期待!