博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
门面模式(Facade Pattern )
阅读量:6626 次
发布时间:2019-06-25

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

hot3.png

定义

要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。

输入图片说明

代码实现

子系统:

public class ClassA {    public void doSomethingA() {    }}public class ClassB {    public void doSomethingB() {    }}

门面:

public class Facade {    private ClassA classA = new ClassA();    private ClassB classB = new ClassB();    //委托方法    public void methodA() {        this.classA.doSomethingA();    }    //委托方法    public void methodB() {        this.classB.doSomethingB();    }}

优点

  • 减少系统的相互依赖,松耦合
  • 提高灵活性
  • 提高安全性

缺点

  • 不符合开闭原则,对修改关闭,对扩展开放。

适用场景

  • 为一个复杂的模块或者子系统提供一个供外界访问的接口

注意事项

  • 一个子系统可以有多个门面
  • 门面不参与子系统内的业务逻辑

实践

参考日志模块slf4j, log4j, logback的实现,他就是采用了门面模式。

转载于:https://my.oschina.net/alvinlkk/blog/1594854

你可能感兴趣的文章
常用Windows系统命令
查看>>
显示服务器时间并一直显示(html代码)
查看>>
ZCS 开源版管理员指南
查看>>
python基础及函数1
查看>>
iptables使用 配置
查看>>
python文件操作
查看>>
find&locate
查看>>
接口规范 9. 推流认证相关接口
查看>>
python连接redis
查看>>
中国大数据科技传播联盟在京成立
查看>>
LAMP架构(LAMP介绍,mysql/mariaDB介绍,Mysql安装)
查看>>
栈排序,只能使用额外的一个栈空间 && 有道一面
查看>>
jQuery垂直菜单和水平菜单实现
查看>>
xargs 命令
查看>>
Linux文件系统之挂载U盘
查看>>
awk——报告生成器
查看>>
oracle 体系结构
查看>>
Nginx+Keepalived搭建高可用负载均衡集群
查看>>
聚合链路及故障排查
查看>>
zabbix监控mysql以及报警(二)终
查看>>