结构性设计模式之门面模式
Posted 丨Jack_Chen丨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结构性设计模式之门面模式相关的知识,希望对你有一定的参考价值。
@TOC
门面模式
概述
应用场景
为复杂的模块或子系统提供外界访问的模块。
子系统相对独立。
预防额外操作带来的风险。
目的
优缺点
优点:
减少系统相互依赖。
提高灵活性。
提高安全性。
缺点:
不符合开闭原则,如果要改东西很麻烦,继承重写都不合适。也就是说系统可以提供新的功能模块而不必进行修改。
主要角色
门面模式主要包含2种角色:
1.外观角色(Facade):
2.子系统角色(SubSystem):
门面模式的基本使用
创建子系统角色
创建2个创建子系统角色:SubSystemA 与SubSystemB
public class SubSystemA
public void subSystem()
System.out.println("subSystem A");
public class SubSystemB
public void subSystem()
System.out.println("subSystem B");
创建外观角色
public class Facade
private SubSystemA a = new SubSystemA();
private SubSystemB b = new SubSystemB();
/**
* 提供对外接口
*/
public void subSystemA()
this.a.subSystem();
/**
* 提供对外接口
*/
public void subSystemB()
this.b.subSystem();
客户端调用
public static void main(String[] args)
Facade facade = new Facade();
facade.subSystemA();
facade.subSystemB();
门面模式实现商城下单
public void order()
if (stockSys.verify())
if (paySys.pay())
logisticsSys.ship();
## 客户端调用
```java
public static void main(String[] args)
new MySys().order();
StockSys verify success
PaySys pay success
logistics ship
StockSys verify fail
StockSys verify success
PaySys pay fail
以上是关于结构性设计模式之门面模式的主要内容,如果未能解决你的问题,请参考以下文章