美文网首页
了解外观模式

了解外观模式

作者: 一条大狼狗 | 来源:发表于2018-08-11 17:08 被阅读4次

                      java 设计模式 ------外观模式


        Java中一共有23种设计模式,每种设计模式各有特点,我们主要来说一下外观模式。

    当然,学习外观模式,首先应该了解一下,什么是外观模式?

    外观模式:

          Facade模式,也叫做外观模式,是由GoF提出的23种设计模式中的一种,Facade模式为一

    组具有类似功能的类群,比如说类库,子系统等,提供一个一致的简单的界面,这个一致的简

    单界面就叫做Facade模式。这是从定义上说。.

      根据自己的语言,通俗点讲,也就是:

          有一组类,他们都具有类似的功能,我们会为这些类统一的提供一个简单的界面,来服务

    客户端,这就叫做外观模式。也可以说是:为子系统中的一组接口提供一个一致的界面,此

    模式定义了一个高层接口。这个接口使得这一子系统更加容易使用。

    外观模式的核心:为子系统提供统一的入口,封装子系统的复杂性,便于客户端调用。

    接下来我们用代码来练一下:

      //1子系统

      public class System1 {

       /** 1子系统实现功能*/

          public void doSomething() {

          System.out.println("实现1子系统功能");

       }

    }

       //2子系统

        public class System2 {

           /** 2子系统实现功能*/

           public void doSomething() {

          System.out.println("实现2子系统功能");

         }

    }

        // 3子系统  

        public class SystemC {

           /** 3子系统实现功能*/

            public void doSomething() {

            System.out.println("实现3子系统功能");

         }

    }

      其次我们新建一个给客户端体提供服务的简单界面类 

        Facade.java

       public class Facade {

                private System1 system1;

                private System2 system2;

                private System3 system3;

                public Facade() {

                      system1 = new System1();

                      system2 = new System2();

                       system3 = new System3();

               }

              public void do123() {

                   this.system1.doSomething();

                   this.system2.doSomething();

                   this.system3.doSomething();}

             }

    最后我们建立客户端类

    MainClass.java

       public class MainClass {

              public static void main(String[] args) {

                  Facade facade = new Facade();

                  facade.do123();

           }

    }

       从上面的代码我们可以知道,System1.java、System2.java、System3.java 具有相似的d

    o123的功能的类。

    而Facade可以统一的提供了一个服务客户端的do123的方法,可以看成是一个简单的界面。

    接下来用图片来说明一下:

        可以利用的界面的效果说明这个问题:在一个界面中我们需要对界面的各个部分进行初

    始化的操作,实现相似的功能,标题栏进行初始化返回键,初始化标题,初始化标题栏的背

    景颜色等等。

         此种设计还是有一定的局限性,针对一些固有的操作很方便,比如经常做一些固定的

    操作,可以使客户端和子系统进行隔离,但是如果我们要经常增加或者删除一些子系统

    ,这样我们还得对外观类进行更改,这还是违反了开闭原则。

    相关文章

      网友评论

          本文标题:了解外观模式

          本文链接:https://www.haomeiwen.com/subject/gxydbftx.html