设计模式 - 门面模式(外观模式)
门面模式:对于一个子系统,高层模块与其通信必须通过一个统一的对象进行,降低高层模块与子系统的耦合程度
核心:封装/隔离,降低模块之间的依赖
- 子系统与高层之间通过facade对象完成通信,底层的修改不会影响高层代码
- 访问者无需知晓底层模块的组件结构,只需和facade进行通信即可 - 保持facade对象的稳定即可屏蔽子系统改动的风险
- 将多个步骤合并成一个方法对外提供功能,降低模块间代码的耦合度 --- 案例:Utils工具类
// 门面类,对外提供统一接口
public class Facade {
private SystemA systemA = new SystemA();
private SystemB systemB = new SystemB();
private SystemC systemC = new SystemC();
public void doA(){
systemA.doA();
}
public void doB(){
systemB.doB();
}
public void doC(){
systemC.doC();
}
// 将多个有序步骤合并,对外提供统一接口,简化外部代码,降低耦合
public void doWork(){
doA();
if(Math.random() > 0.5) {
doB();
}
doC();
}
}
···
欢迎疑问、期待评论、感谢指点 -- kiqi,愿同您为友
-- 星河有灿灿,愿与之辉