三层转七层总结

来源:互联网 发布:美洲狮步战车数据性能 编辑:程序博客网 时间:2024/04/29 21:42

    三层到七层的转化其实就是加了两个设计模式,三层是最经典的U层,B层,D层。七层呢,是在U层和B层之间加入外观模式,更好的接触U层和B层的耦合;在B层和D层之间加入了抽象工厂和反射,更方便更换数据库和找到接口,解B层和D层的耦合。

   下面是七层的包图。


一、每一层的作用:

U层:显示界面给用户,接收用户输入的信息,显示系统返回给用户的信息。


Facade:负责U层和B层之间的信息传递,一提起外观模式应该会想到设计模式中它代表的一个高层接口。用户只要与这个高层接口打交道就可以达到统一处理子系统的目的。这里引入的外观模式就是为了让B层在不用了解U层的情况下通过这个高层接口(Facade)统一处理U层的信息。


B层:负责访问D层,但是B层并不是直接访问D层的,B层是通过访问Factory然后通过反射间接的访问D层,而且B层作为业务逻辑层处在系统的核心位置,承担着所有的逻辑判断,所以程序的每个功能在B层都对应一个类。


Factory:工厂来创建接口,返回接口。之前三层的时候觉得B层作为桥梁链接U层和B层,现在学到了七层,发现可以进一步解耦和,这便是Factory的功劳。


Interface:接口是一种方法和能力,接口是对行为的抽象,我们之前在对比抽象类的时候经常会提到这两句话,这里的接口层主要是将访问数据库的方法进行抽象,是调用数据访问层方法的接口。


DAL:数据库访问层,D层是负责和数据库直接交互的,也就是我们经常用到的增删改查。


Entity:实体层,存放实体类,实体层是整个架构的血液,负责传递参数,游走在各层之间,方便各层的交流。


二、B层,工厂层,接口层,接口层关系:

这块的关系搞了好久才明白,分享给大家我是怎么理解的,前面是官方解释,后面是我举的例子。

B层:调工厂和接口---  领导派发一项任务;

工厂层:创建接口对象-- 找到任务的实施方案,利用找到那个提供此方法的接口;

接口层:提供接口方法-- 提供任务实施方案; 

D层:实现接口-- 干活,具体执行方案


三、顺带着研究了一下包之间的三种关系:带箭头的虚线

   访问:access  源包要用到目标包中的元素

   导入:import 目标包的内容将被导入到源包中

   合并:将目标包中的内容合并到源包中去

   上述三种关系都是在目标包中public元素进行的,对private元素无效 

access和import区别:

当源包被导入另一个包Z中时,access关系中,Z不可以访问目标包,import可访问目标包。



0 0
原创粉丝点击