zoukankan      html  css  js  c++  java
  • 设计模式学习(十) 外观模式

    迪米特法则(最少知识原则):

      一个软件实体应当尽可能少的与其他实体发生相互作用。

    外观模式核心:

       -- 为子系统提供统一的入口,封装子系统的复杂性,便于客户端调用。

    以办理公司为例:

    package com.lp.facade;
    
    public interface 工商局 {
        void checkName();
    }
    
    class 海淀区工商局 implements 工商局{
    
        @Override
        public void checkName() {
            System.out.println("检查名字是否有冲突");
            
        }
        
    }
    工商局
    package com.lp.facade;
    
    public interface 税务局 {
        void taxCertificate();
    }
    
    class 海淀税务局 implements 税务局{
    
        @Override
        public void taxCertificate() {
            System.out.println("在海淀税务局办理税务登记");
            
        }
        
    }
    税务局
    package com.lp.facade;
    
    public interface 银行 {
        void openAccount();    //开户
    }
    
    class 中国工商银行 implements 银行{
    
        @Override
        public void openAccount() {
            System.out.println("在中国工商银行开户");
            
        }
        
    }
    银行
    package com.lp.facade;
    
    public interface 质检局 {
        void orgCodeCertificate(); //办理组织机构代码证
    }
    
    class 海淀质检局 implements 质检局{
    
        @Override
        public void orgCodeCertificate() {
            System.out.println("在海淀区质检局办理组织机构代码证");
            
        }
        
    }
    质检局
    package com.lp.facade;
    
    /*办理注册流程的门面对象*/
    public class RegisterFacade {
        public void register(){
            工商局  a = new 海淀区工商局();
            a.checkName();
            质检局  b = new 海淀质检局();
            b.orgCodeCertificate();
            税务局 c = new 海淀税务局();
            c.taxCertificate();
            银行 d = new 中国工商银行();
            d.openAccount();
            
        }
    }
    办理注册流程的门面对象
    package com.lp.facade;
    
    public class Client {
        public static void main(String[] args){
            new RegisterFacade().register();
        }
    }
    客户端

    结果:

  • 相关阅读:
    PHP NG (PHP 5.7) 性能比 PHP 5.6 提升近 1 倍
    PHP移动互联网开发笔记(3)——运算符
    利用PHP生成二维码
    几款常用的PHP模板引擎
    PHP多线程的使用
    关于程序员失眠的解决方案
    PHP移动互联网开发笔记(5)——文件的上传下载
    PHP生成二维码【谷歌API+qrcode+圆角Logo】
    7种流行PHP集成开发工具(IDE)的比较
    封装
  • 原文地址:https://www.cnblogs.com/lipeng0824/p/4433696.html
Copyright © 2011-2022 走看看