结构性设计模式之门面模式

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

以上是关于结构性设计模式之门面模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式之门面模式

设计模式之门面模式20170728

设计模式之门面模式

java设计模式之外观模式(门面模式)

揭秘设计模式之门面模式

java设计模式之外观模式(门面模式)