门面模式的两个作用:1、简化类的接口。2、消除类与使用它的代码之间的耦合。就是简化代码,让系统更加简易,代码分成一个小小的工具,简化复杂的接口,管理代码方便。
简单的门面元素,实现监听器。
function addEvent ( ele , type , fn ) {
if (window.addEventListener) {
ele.addEventListener(type,fn,false);
}else if (window.attachEvent){
ele.attachEvent('on'+type,fn);
}else{
ele['on'+type] = fn;
}
}
门面模式的适用场合
就是在反复成组出现的代码,如果函数b出现在在函数a之后的这种情况经常出现,则把这两个函数组合起来成为门面函数。
另外一个应用主要是浏览器的差异,处理跨浏览器,提供一个统一的接口。
门面模式之利
编写一次组合代码,可以反复使用,节省时间和精力。提供一个处理问题和任务的简化接口。
降低对外部代码的依赖程度,避免与下层子系统紧密耦合。
门面模式之弊
对于简单的东西,不要使用门面模式。因为可能导致小题大作。
门面模式创建便利函数,为执行各种复杂任务提供一个简单的接口。使代码更容易维护和理解。弱化子系统与客户代码的耦合。有助于简化常见的重复任务,把经常相伴出现的常用函数组合在一起。需要面对不同浏览器接口的环境中经常使用。