Java设计模式学习—外观模式(Facade Pattern)

外观模式:为子系统提供一个统一的入口(外观类),使客户端(调用子系统的一端)和子系统之间解耦,客户端调用子系统时只需要与外观类交互即可;官方定义:为子系统中的一组接口提供一个统一的入口,外观模式定义了一个高层接口,这个接口使的子系统更加容易使用。
eg:如图用户1和用户2执行功能1~功能3,此时他们需要分别访问三个功能子系统,这样系统的耦合度就特别高。
图1
如果我们使用外观模式,即为用户提供一个一个统一的入口
图2
这样用户只需要和外观类交互,从而降低了用户与子系统的耦合度。

/**子系统1**/
interface SubSystem1{
   public void fun1();
}
class System1 implement SubSystem1{
   public void fun1(){
      System.out.println("功能1");
   }
}
/**子系统2**/
interface SubSystem2{
   public void f1();
}
class System2 implement SubSystem2{
   public void f1(){
      System.out.println("System2:功能1");
   }
   /**外观类**/
class  FacadeClass{
  private System1 system1 = new System1();
  private System2 system2 = new System2();;
  public void facade(){
       system1.fun1();
       system2.f1();
   }
}
/**用户**/
public class User{
   public static void main(String[]args){
       new Facade().facade(); 
   }
}

由此,外观模式的角色如下:
1)、外观角色(Facade):外观类知道子系统的功能与职责,将客户端的请求分配到相应的子系统去处理;
2)、子系统角色:子系统是一个或多个类的集合,子系统可以被客户直接调用,也可以被外观角色调用,它处理由外观类传递过来的请求;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值