码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-04-17 00:54:45      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

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

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

外观模式核心:

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

以办理公司为例:

技术分享
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();
    }
}
客户端

 

结果:

技术分享

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

标签:

原文地址:http://www.cnblogs.com/lipeng0824/p/4433696.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!