码迷,mamicode.com
首页 > 其他好文 > 详细

外观模式

时间:2017-06-04 22:45:34      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:cli   csdn   之间   应该   sub   使用   article   str   rgs   

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

   }

 

}

外观模式

标签:cli   csdn   之间   应该   sub   使用   article   str   rgs   

原文地址:http://www.cnblogs.com/suzixuan/p/6941824.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!