简介:为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
也称为门面模式
代码示例:
子系统1
/\*\*
\* @author
\* @since 2019/4/12
\*/
public class SubSystem1 {
public void menthod() {
System.out.println("方法1");
}
}
子系统2
/\*\*
\* @author
\* @since 2019/4/12
\*/
public class SubSystem2 {
public void menthod() {
System.out.println("方法2");
}
}
子系统3
/\*\*
\* @author
\* @since 2019/4/12
\*/
public class SubSystem3 {
public void menthod() {
System.out.println("方法3");
}
}
父系统
/\*\*
\* @author
\* @since 2019/4/12
\*/
public class BigSystem {
public void menthod() {
new SubSystem1().menthod();
new SubSystem2().menthod();
new SubSystem3().menthod();
}
}
测试
/\*\*
\* 外观模式测试(相当于封装,让系统层的调用更清晰)
\*/
@Test
public void facadeTest() {
BigSystem bigSystem = new BigSystem();
bigSystem.menthod();
}
优点:实现了子系统与客户端之间的松耦合关系。客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目,并使得子系统使用起来更加容易。
使用场景:
- 开发阶段,子系统越来越复杂,增加外观模式提供一个简单的调用接口。
- 设计初期阶段,应该有意识的将不同层分离,层与层之间建立外观模式。
- 对某些非常难维护和扩展的旧系统,但其功能又是必须的,应该提供一个外观接口,使其变的更清晰