zoukankan      html  css  js  c++  java
  • 外观模式

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

    哪些情况使用此模式:

    1,设计初期阶段,应该有意识的将不同的两个层分离。层与层之间建立外观模式,降低耦合度。

    2,开发阶段,子系统往往变的越来越复杂,大多数模式的使用会产生很多很小的类,增加外观Facade,可以提供一个简单的接口,减少它们之间的依赖。

    3,在维护一个遗留的大型系统时,可能系统已经很难维护和扩展,但是它又很重要,新系统要依赖它。那么为新系统开发一个Facade,来提供简单清晰的接口,让新系统和Facade对象交互,Facade与旧代码交互所有复杂工作。

    假设存在系统1和2,客户端不关心与系统1、2交互

    (代码地址:http://blog.csdn.net/jzhf2012/article/details/40652771)

    public class SubSystemOne {

     

       public void method(){

          System.out.println("这是系统1");

       }

    }

    public class SubSystemTwo {

     

       public void method(){

          System.out.println("这是系统2");

       }

    }

    2外观类,将客户端要交互的系统逻辑封装

    public class Facade {

     

       SubSystemOne one;

       SubSystemTwo two;

      

       public Facade(){

          one = new SubSystemOne();

          two = new SubSystemTwo();

       }

       //要处理的逻辑,将外部系统与one、two系统交互的逻辑放这里,外部系统就不用和one、two交互了,直接与外观类交互

       public void method(){

          one.method();

          two.method();

       }

    }

    3、客户端

    public class FacadeClient {

     

       /**

        * @param args

        */

       public static void main(String[] args) {

          // TODO Auto-generatedmethod stub

     

          //直接与外观类交互,在此看不到one、two系统

          Facade facade = new Facade();

          facade.method();

       }

     

    }

  • 相关阅读:
    深入比特币原理(四)——锁定脚本(locking script)与解锁脚本(unlocking script)
    深入比特币原理(三)——交易的输入(input)与输出(output)
    深入比特币原理(二)——比特币密钥地址生成
    [JLOI2013]删除物品
    [POI2007]MEG-Megalopolis
    [HNOI2008]遥远的行星
    [JSOI2008]最大数maxnumber
    [HNOI2008]水平可见直线
    [JSOI2008]星球大战starwar
    [HNOI2008]越狱
  • 原文地址:https://www.cnblogs.com/suzixuan/p/6941824.html
Copyright © 2011-2022 走看看