我读设计模式之外观模式(Facade Pattern)

     学习了外观模式,才发现原来不经义间,自己已经不止一次的用过此模式了。
 

     外观模式强调,外部(客户端)与子系统之间通过一个统一的接口(外观)进行通信。也就说,一个系统中可能包括很多子系统,客户端与其中的任何子系统的通信都通过统一的外观实现,而避免使客户端直接与子系统发生关系。

     

     记得曾经有个项目:数据操作涉及三地三个数据库,也就是说每做一个动作(比如说insert),都要insert到三地去,涉及三个数据库。

         

     记得最初的代码是这样写的:(当时是把三个类写成了一个类中三个方法,为了说明问题,这里分开来写)
     

Code


     后来,由于某些原因,三地中某地不再作业,数据库被撤掉。那么这个系统就要做相应的修改:系统中只要用到数据库作业的地方都要把三地作业换成两地作业(把其中某句注释掉)。郁闷之极~~

          

     根据需求,之后做了一些调整:把三地作业封装再一个类中,而在客户端使用这个封装的类就可以了。如果,需求有变,也只是更改这个封装的类即可(所有的操作都集中在这里了)。现在看来,这个就是外观模式的应用了。

Code

1.为一个复杂子系统提供一个简单接口。

2.提高子系统的独立性。

3.在层次化结构中,可以使用Facade模式定义系统中每一层的入口。

 

     学习参考:
     http://www.cnblogs.com/Terrylee/archive/2006/03/17/352349.html

     http://www.cnblogs.com/zhenyulu/articles/55992.html

     大话设计模式:外观模式

posted on 2008-07-30 13:54  easy2Dev  阅读(225)  评论(0编辑  收藏  举报

导航