设计模式(2)- 外观模式

外观模式

    1.定义

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

    2.示例代码

    

/*A模块的接口*/
public interface AModuleApi{
   public void testA();
}

/*A模块的实现*/
public class AModuleImpl implements AModuleApi{
   public void testA(){
       System.out.println("现在A模块里操作testA方法");
   }
}

/*B模块的接口*/
public interface BModuleApi{
   public void testB();
}

/*B模块的实现*/
public class BModuleImpl implements BModuleApi{
   public void testB(){
       System.out.println("现在B模块里操作testB方法");
   }
}

/*C模块的接口*/
public interface CModuleApi{
   public void testC();
}

/*C模块的实现*/
public class CModuleImpl implements CModuleApi{
   public void testC(){
       System.out.println("现在C模块里操作testC方法");
   }
}

   

/*定义外观对象*/
public class Facade{
    public void test(){
       AModuleApi a = new AModuleImpl();
       a.testA();
       BModuleApi b = new BModuleImpl();
       b.testB();
       CModuleApi c = new CModuleImpl();
       c.testC();
    }
}

   

/*客户端调用*/
public class Client{
    public static void main(String args[]){
        new Facade().test();
    }
}

    3.实际应用

     外观模式的目的不是给子系统添加新的功能接口,而是为了让外部减少与子系统内部多个模块的交互,松散耦合,从而让外部能够更简单的使用子系统。外观应该是包装已有的功能,它主要负责组合已有功能来实现客户需求,而不是添加新的实现。

外观模式的本质:封装交互,简化调用

猜你喜欢

转载自renhanxiang.iteye.com/blog/2406864