您的位置:首页 > 编程语言 > Java开发

门面模式(Facade Pattern )

2017-12-26 00:04 274 查看

定义

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



代码实现

子系统:

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/1595147
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 设计模式