博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式学习(十) 外观模式
阅读量:6005 次
发布时间:2019-06-20

本文共 1482 字,大约阅读时间需要 4 分钟。

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

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

外观模式核心:

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

以办理公司为例:

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

 

结果:

转载于:https://www.cnblogs.com/lipeng0824/p/4433696.html

你可能感兴趣的文章
cisco交换机和路由器的启动顺序,他们的区别?
查看>>
Linux下各规格的磁盘操作
查看>>
我的友情链接
查看>>
园区网DHCP+OSPF实现【神州数码设备】
查看>>
wget 用法
查看>>
彻底理解js中this的指向,不必硬背。
查看>>
Java 项目常用变量命名
查看>>
python开发sparkSQL应用
查看>>
拍照怎么搜题?(上)
查看>>
json字符串转java对象
查看>>
第十一章 命令传参过滤器、命令组合工具:xargs命令
查看>>
如何开启Apache Rewrite功能
查看>>
下载基于REST、SPDY、异步IO深入规模化网络、信息安全、通信优化企业应用系统...
查看>>
Centos7 更改docker镜像源
查看>>
login_required -- 登录验证
查看>>
linux基础篇-20,seq命令的用法
查看>>
shell学习笔记 (5)
查看>>
PowerDesigner生成数据库建表sql脚本
查看>>
数据库设计之拆分与数据类型选择
查看>>
mount命令的使用
查看>>