门面模式( Facade Pattern)
又叫外观模式,提供了一个统一的接口,用来访问子系统中的一群接口
特征:门面模式定义了一个高层接口,让子系统更容易使用
属于结构型模式
与代理模式的区别
从实现上看,其实就是一种静态代理。
但是它的重点在于封装与对外展示。
而静态代理,重点在于增强。
学设计模式,要看思想,不能只看代码。
与单例模式的关系
门面模式经常做成单例模式,比如各种工具类。
优点
1、简化了调用过程,无需深入了解子系统,以防给子系统带来风险
2、减少系统依赖、松散耦合(对客户端而言)
3、更好地划分访问层次,提高了安全性
4、遵循迪米特法则,即最少知道原则
缺点
1、当增加子系统和扩展子系统行为时,可能容易带来未知风险
2、不符合开闭原则
3、某些情况下可能违背单一职责原则
使用场景
- Controller 层,Service 层、Dao 层,每一层都只对上层提供简洁的接口。