首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

(六)外观模式

2013-04-09 
(6)外观模式外观模式是一个很常用的模式,它最大的特点将细粒度的对象包装成粗粒度的对象,可以这样理解,我

(6)外观模式

    外观模式是一个很常用的模式,它最大的特点将细粒度的对象包装成粗粒度的对象,可以这样理解,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性。我发现设计模式一直在讲抽象和封装,当然不只是抽象和封装。这种思想将会一直伴随软件开发吧……

它是这样定义的:

          Facade,为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

外观模式的结构图:

(六)外观模式


分析结构图:

    红色框即SubSystem Classes,是子系统类集合,实现子系统的功能,处理Facede对象指派的任务,值得注意的是子类中没有Facede的任何信息,即没有对Facede对象的引用。

           Facede是外观类,它知道哪些子系统类负责处理请求,将客户的请求代理给适当的子系统对象。

    有了外观模式,Client客户就不必与子系统类直接打交道,而是通过外观类这个接口降低了依赖性。完美地体现了依赖倒转原则(针对接口编程,不要对实现编程)和迪米特法则(如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用)。

由结构图写出外观模式的代码:

 

        1.为一个复杂子系统提供一个简单接口,这样再调用这个子系统的时候就不会那么复杂了。

        2.提高子系统的独立性,外观模式就是在解耦,耦合性降低了子系统的独立性就提高了。

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

 

外观模式与代理模式的区别:

代理模式

         1代理模式中的原类和代理类继承同一父类;

         2原类对象与代理类对象接口相同,功能一致;

         3 起到了隐藏原类的作用。

外观模式 

    是多个类的集成、统一适配。

今天学习这个模式并没有感到纠结,感觉越来越简单了,是不是接下来学得会更快呢?希望是吧。

2楼lfmilaoshi昨天 20:56
接下来,肯定更快
1楼wlccomeon昨天 15:25
加油~

热点排行