外观模式:简化子系统交互的接口设计

59 阅读1分钟

外观模式是一种常用的软件设计模式,它为子系统提供了一个统一的接口,使得客户端可以与子系统中的多个对象进行交互,而不需要了解子系统的内部细节。这种设计模式可以提高客户端的代码可读性和可维护性,同时也可以简化子系统的实现。

什么是外观模式

外观模式是一种结构型设计模式,它提供了一个统一的接口,允许客户端通过这个接口与子系统中的多个对象进行交互。外观模式将客户端与子系统的实现细节分离开来,使得客户端可以更方便地使用子系统。

外观模式通常包含两个角色:

  1. 外观角色:为子系统提供统一的接口,使得客户端可以通过这个接口与子系统中的多个对象进行交互。外观角色并不关心子系统的具体实现细节。
  2. 子系统角色:实现外观角色所提供的接口,处理与客户端的交互。

模式结构

截屏2023-08-28 13.24.54.png

代码实现

    var Facade = function () {
        this.systemA = new SystemA()
        this.systemB = new SystemB()
        this.systemC = new SystemC()
    }

    Facade.prototype.wrapOpration = function () {
        this.systemA.oprationA()
        this.systemB.oprationB()
        this.systemC.oprationC()
    }

    var SystemA = function () {}
    SystemA.prototype.oprationA = function () {
        console.log("oprationA");
    }

    var SystemB = function () {}
    SystemB.prototype.oprationB = function () {
        console.log("oprationB");
    }

    var SystemC = function () {}
    SystemC.prototype.oprationC = function () {
        console.log("oprationC");
    }

    let facade = new Facade()
    facade.wrapOpration()
    
   // oprationA
   // oprationB
   // oprationC