设计模式之外观模式

外观模式

外观模式(Facade),为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。

模式作用:

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

注意事项:

  1. 外观模式被开发者连续使用时会产生一定的性能问题,因为每次调用时都要检测功能的可用性(PS:可用函数的惰性加载来解决)

例子:

1
2
3
4
5
6
7
8
9
function stopEvent(e) {
// 同时阻止事件默认行为和时间冒泡
e.stopPropagation()
e.preventDefault()
}
// stopEvent本身就是外观
$('#btn').click(function(e){
stopEvent(e)
})