美文网首页
8.外观模式(Facade)

8.外观模式(Facade)

作者: 未知的证明 | 来源:发表于2019-07-11 10:04 被阅读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("行政手续终于办完了");
        }
    
    }
    

    相关文章

      网友评论

          本文标题:8.外观模式(Facade)

          本文链接:https://www.haomeiwen.com/subject/ztqrkctx.html