频道栏目
首页 > 程序开发 > 软件开发 > 其他 > 正文
设计模式(八)外观模式
2017-02-18 09:27:00         来源:海角在眼前  
收藏   我要投稿

设计模式(八)外观模式:这个模式是我觉得最好懂的模式。外观(Facade)模式,定义:外观模式是一种结构型模式。它为更大的代码体提供了一个方便的高层次接口,能够隐藏其底层的真实复杂性。简单说就是——小接口有大智慧。

例子:

使用jQuery的$(el).css()或$(el).animate()方法时,实际上我们是在使用Facade:一种更简单的公有接口,使我们不必手动在jQuery核心调用很多内部方法以便实现某些行为。

优点:

1. 易于使用。

2. 实现该模式时占用空间小。

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

缺点:

1. 可能存在隐性成本,性能下降。

使用场景:

1.为一个复杂子系统提供一个简单接口。

2. 提高子系统的独立性。

示例:

使用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模式时,要了解涉及的任何性能成本,并确认是否值得抽象。

中介者模式与外观模式区别

中介者模式在它被模块显式引用的地方汇集这些模块之间的通信。从某种意义上说,这是多方向的。

外观模式仅是为模块或系统定义了一个较简单的接口,而没有添加任何额外的功能。系统中的其他模块不会直接关联外观,所以可以被视为单向的。

点击复制链接 与好友分享!回本站首页
上一篇:ES6和ES5中数据结构的遍历
下一篇:git笔记
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站