设计模式学习(十) 外观模式

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

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

外观模式核心:

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

以办理公司为例:

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();
    }
}
客户端

 

结果:

posted @ 2015-04-16 23:47  李_鹏  阅读(172)  评论(0编辑  收藏  举报