机房重构——加了设计模式的三层(上)

来源:互联网 发布:linux公社怎么样 编辑:程序博客网 时间:2024/06/05 04:06

刚开始学三层的时候就听说了七层,当时的感觉就是:七层!!!

现在对于七层的学习已经有一段时间了,而且也做了几个例子了对于七层的理解也有了较

深的认识。

        

说到七层,就是表现层,外观层,业务逻辑层,接口层,工厂层,数据访问层,实体层。

 

为啥子要整个七层呢?三层就很好啊。

在学之前确实有过这么想法,说白了就是在为自己的懒惰找借口。

其实七层的使用和三层的使用是一个道理的就是为了减少耦合。在表现层和逻辑层加了个

外观层,

在逻辑层和数据访问层加了个抽象工厂(接口层,工厂层)

 

                       

 

 

为什么加外观层呢,外层模式就是用来封装方法的。

一个过程难免要使用好多的方法,就好像要把大象装冰箱里这个过程一样,我们可以设计

出三个方法,open()打开冰箱,Load()把大象装冰箱里,close()把冰箱门关上。

当我们的用户要调用这个过程的时候,


U层要使用这三个方法,这样就会因为U层调用了三个方法产生高耦合。加了外观层之后,

在外观层中构造一个方法Boxing,这个装箱的方法中会调用这三个方法。也就是说外观层

把这三个方法进行了封装,然后告诉你这个封装好的方法就是Boxing它可以实现把大象装

冰箱里的功能,具体怎么装的过程就不是重点了,这样U层要实现把大象装冰箱里就只需要

调用Boxing这一个方法就可以了。这样就实现了低耦合。

 

然后就是抽象工厂了,

这个抽象工厂就是在B层和D层中的设计模式,只不过这次一下子出现了两个层抽象工厂是干

啥子用的呢,在学习大话设计模式的时候学到抽象工厂的时候,那一章的标题是“就不能不换

数据库吗”,可见抽象工厂的作用之一就是可以选择数据库。其中另一个作用就是实例化D层的

类.D层的类可不是向三层简单的实例化,而是使用的反射,也就是说D层的实例化并不是使用的

New 而是使用的反射。准确的说是实现了IDAL接口,而不是D层,由这个接口去决定

执行哪个D层,也许这就是依赖倒置原则吧,要依赖抽象而不是具体。

         

0 0