本条情势是自己认为最好懂的格局。

外观(Facade)模式

定义:

外观形式是一种结构型方式。它为更大的代码体提供了一个利于的高层次接口,可以隐藏其底层的实事求是复杂性。简单说就是——小接口有大智慧。

例子:

动用jQuery的$(el).css()或$(el).animate()方法时,实际上大家是在选取Facade:一种更简明的国有接口,使大家不用手动在jQuery宗旨调用很多之中方法以便达成某些行为。

优点:

  1. 简单使用。

  2. 心想事成该格局时占用空间小。

  3. 调用者与底层代码解耦。

缺点:

  1. 只怕存在隐性开支,质量下跌。

采纳处境:

1. 为一个复杂子系统提供一个大致接口。

  1. 增长子系统的独立性。

示例:

使用Facade来简化用于监听跨浏览器事件的接口。

var addMyEvent = function( el,ev,fn ){
  if( el.addEventListener ){
            el.addEventListener( ev,fn, false );
      }else if(el.attachEvent){
            el.attachEvent( "on" + ev, fn );
      } else{
          el["on" + ev] = fn;
    }
};

结论:

当使用Facade格局时,要打听涉及的其他性质开销,并确认是或不是值得抽象。

中介者方式与外观格局分化

中介者格局在它被模块显式引用的地点汇集那几个模块之间的通讯。从某种意义上说,那是多方向的。

外观方式仅是为模块或系统定义了一个较简单的接口,而尚未拉长此外额外的功效。系统中的其余模块不会一向关乎外观,所以可以被视为单向的。

 

参考文献

  1. 《Learning JavaScript Design Patterns》 by Addy
    Osmani

https://addyosmani.com/resources/essentialjsdesignpatterns/book/

  1. 《JavaScript设计格局》by 徐涛【译】

 

本文为原创作品,转发请保留原出处,方便溯源,如有错误地点,多谢指正。

正文地址 :http://www.cnblogs.com/lovesong/p/5612488.html

相关文章

网站地图xml地图