刚开始学三层的时候就听说了七层,当时的感觉就是:七层!!!
现在对于七层的学习已经有一段时间了,而且也做了几个例子了对于七层的理解也有了较
深的认识。
说到七层,就是表现层,外观层,业务逻辑层,接口层,工厂层,数据访问层,实体层。
为啥子要整个七层呢?三层就很好啊。
在学之前确实有过这么想法,说白了就是在为自己的懒惰找借口。
其实七层的使用和三层的使用是一个道理的就是为了减少耦合。在表现层和逻辑层加了个
外观层,
在逻辑层和数据访问层加了个抽象工厂(接口层,工厂层)
为什么加外观层呢,外层模式就是用来封装方法的。
一个过程难免要使用好多的方法,就好像要把大象装冰箱里这个过程一样,我们可以设计
出三个方法,open()打开冰箱,Load()把大象装冰箱里,close()把冰箱门关上。
当我们的用户要调用这个过程的时候,
U层要使用这三个方法,这样就会因为U层调用了三个方法产生高耦合。加了外观层之后,
在外观层中构造一个方法Boxing,这个装箱的方法中会调用这三个方法。也就是说外观层
把这三个方法进行了封装,然后告诉你这个封装好的方法就是Boxing它可以实现把大象装
冰箱里的功能,具体怎么装的过程就不是重点了,这样U层要实现把大象装冰箱里就只需要
调用Boxing这一个方法就可以了。这样就实现了低耦合。
然后就是抽象工厂了,
这个抽象工厂就是在B层和D层中的设计模式,只不过这次一下子出现了两个层抽象工厂是干
啥子用的呢,在学习大话设计模式的时候学到抽象工厂的时候,那一章的标题是“就不能不换
数据库吗”,可见抽象工厂的作用之一就是可以选择数据库。其中另一个作用就是实例化D层的
类.D层的类可不是向三层简单的实例化,而是使用的反射,也就是说D层的实例化并不是使用的
New 而是使用的反射。准确的说是实现了IDAL接口,而不是D层,由这个接口去决定
执行哪个D层,也许这就是依赖倒置原则吧,要依赖抽象而不是具体。