我读设计模式之外观模式(Facade Pattern)
学习了外观模式,才发现原来不经义间,自己已经不止一次的用过此模式了。
Code
Code
外观模式强调,外部(客户端)与子系统之间通过一个统一的接口(外观)进行通信。也就说,一个系统中可能包括很多子系统,客户端与其中的任何子系统的通信都通过统一的外观实现,而避免使客户端直接与子系统发生关系。
记得曾经有个项目:数据操作涉及三地三个数据库,也就是说每做一个动作(比如说insert),都要insert到三地去,涉及三个数据库。
记得最初的代码是这样写的:(当时是把三个类写成了一个类中三个方法,为了说明问题,这里分开来写)
后来,由于某些原因,三地中某地不再作业,数据库被撤掉。那么这个系统就要做相应的修改:系统中只要用到数据库作业的地方都要把三地作业换成两地作业(把其中某句注释掉)。郁闷之极~~
根据需求,之后做了一些调整:把三地作业封装再一个类中,而在客户端使用这个封装的类就可以了。如果,需求有变,也只是更改这个封装的类即可(所有的操作都集中在这里了)。现在看来,这个就是外观模式的应用了。
1.为一个复杂子系统提供一个简单接口。
2.提高子系统的独立性。
3.在层次化结构中,可以使用Facade模式定义系统中每一层的入口。
学习参考:
http://www.cnblogs.com/Terrylee/archive/2006/03/17/352349.html
http://www.cnblogs.com/zhenyulu/articles/55992.html
大话设计模式:外观模式
浙公网安备 33010602011771号