• 外观模式


    外观模式(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();

       }

     

    }

  • 相关阅读:
    MVC3.0与C#截取字符串
    MVC3.0图片滚动和相册展示(上)
    MVC3.0视频点播及上传格式转化
    职位VS能力
    liblfds 测试
    dpdk 相关概念
    WAR文件
    在word中选择一个矩形区域
    IP地址 网段的划分
    ipconfig...ping...netstat
  • 原文地址:https://www.cnblogs.com/suzixuan/p/6941824.html
Copyright © 2020-2023  润新知