门面模式

今天学习servlet时候,看到ServletConfig和ServletContext都涉及到了门面模式,于是回顾一下。


门面模式(Facade Pattern):也叫外观模式,一种比较常用的封装模式.要求一个子系统的外部与其内部通信必须通过一个统一的对象进行.门面模式提供一个高层次的接口,以便子系统更易使用.

子系统可能代表一个类,也可能代表n个对象的集合.子系统并不知道门面类的存在,对子系统而言,门面仅仅是一个客户端.
门面对象是外界访问子系统内部的唯一通道,它将从客户端发来的请求委托到子系统去,该对象并没有实际的业务逻辑,只是一个委托对象.


实例代码:

//子系统A
class ClassA{
  public void doSomethingA(){
      System.out.println("A系统工作");
  }
}
//子系统C
class ClassB{
public void doSomethingB(){
    System.out.println("B系统工作");
}
}
//子系统C
class ClassC{
public void doSomethingC(){
    System.out.println("C系统工作");
}
}

//门面类
public class Facade {
	private ClassA a = new ClassA();
    private ClassB b = new ClassB();
    private ClassC c = new ClassC();
    
    public void methodA(){
        a.doSomethingA();
    }
    public void methodB(){
        b.doSomethingB();
    }
    public void methodC(){
        c.doSomethingC();
    }
    
    public static void main(String[] args){
        Facade f =new Facade();
        f.methodA();
        f.methodB();
        f.methodC();
    }
}

被封装的子系统对象通常被设为private或protected,以防止在Facade中被直接访问。例如上述代码中的ClassA,ClassB,ClassC的修饰符都是private。


注意:门面对象不应该参与业务逻辑,门面对象应该是稳定的。业务逻辑的变化应该封装到子系统中去,我们可以扩充子系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值