javascript设计模式之外观模式

外观模式

外观模式(Facade)为子系统中的一组接口提供了一个一致的界面,此模块定义了一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式不仅简化类中的接口,而且对接口与调用者也进行了解耦,外观模式经常被认为开发者必备,它可以将一些复杂操作封装起来,并创建一个简单的接口用于调用。

外观模式的作用

  • 在设计初期,应该要有意识地将不同的两个层分离,比如经典的三层结构。
  • 在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,增加外观模式可以提供一个简单的接口,减少他们之间的依赖。
  • 在维护阶段为系统开发一个外观Facade类,为设计粗糙和高度复杂的遗留代码提供比较清晰的接口,让新系统和Facade对象交互。

外观模式的注意事项

  • 外观模式被开发者连续使用时会产生一定的性能问题,因为在每次调用时都要检测功能的可用性。

外观模式实战

// 商店对象
var shop = {};
// 商店内制造食物
shop.createFood = function() {
  console.log('Food ok');
}
// 商店内制造饮料
shop.createDrink = function () {
  console.log('Drink ok');
}
// 商店内提供服务
shop.service = function () {
  this.createFood(); // 提供食物
  this.createDrink(); // 提供饮料
}
// 商店开门营业
shop.open = function () {
  return this.service(); // 提供服务
}

// 调用门面(外观)
shop.open();

你可能感兴趣的:(Design,Pattern,Javascript)