8.外观模式(Facade)

2019-07-11  本文已影响0人  未知的证明

外观模式的目的不是给予子系统添加新的功能接口,而是为了让外部减少与子系统内多个模块的交互,松散耦合,从而让外部能够更简单地使用子系统.
外观模式的本质是:封装交互,简化调用。

 interface Executive{
  
    public void approve();
     
}
class HealthOffice implements Executive{

    @Override
    public void approve() {
        System.out.println("卫生局通过审批");
    }
    
}
class RevenueOffice implements Executive{

    @Override
    public void approve() {
        System.out.println("税务局完成登记,定时回去收税");
    }
    
}
class SaicOffice implements Executive{

    @Override
    public void approve() {
        System.out.println("工商局完成审核,办法营业执照");
    }
    
}
public class FacadeTest {

    public static void main(String[] args) {
        System.out.println("开始办理行政手续...");

        HealthOffice ho = new HealthOffice();
        RevenueOffice ro = new RevenueOffice();
        SaicOffice so = new SaicOffice();

        ho.approve();
        ro.approve();
        so.approve();

        System.out.println("行政手续终于办完了");
    }

}

利用外观模式对上述类进行重定义。定义一个外观类:

class ApproveFacade {

    public ApproveFacade() {

    }

    public void wholeApprove() {
        new HealthOffice().approve();
        new RevenueOffice().approve();
        new SaicOffice().approve();
    }

}
public class FacadeTest {

    public static void main(String[] args) {
        System.out.println("开始办理行政手续...");

        ApproveFacade af = new ApproveFacade();
        af.wholeApprove();
        
        System.out.println("行政手续终于办完了");
    }

}
上一篇下一篇

猜你喜欢

热点阅读