外观模式(Facade):为子系统中的一组接口提供了一个一致的界面,此模块定义了一个高层接口,这个接口使得这一子系统更加容易使用
外观模式不仅简化类中中的接口,而且对接口与调用者也进行了解耦,将一些复杂操作封装起来,并创建一个简单的接口用于调用
模式作用:1、在设计初期,应该要有意识的将不同的两层分离,比如经典的三层结构 2、在开发阶段,子系统往往因为不断的重构演化而变得越来越发展,增加外观F可以提供一个简单的接口,减少他们之间的依赖 3、在维护一个遗留大型系统时,为系统开发一个外观Facade类,为设计粗糙和高度复杂的依赖代码提供比较清晰的接口,让系统和Facade对象交互
例子:
var richman={ };
richman.chufang=function(){
return "馒头"
};
richman.shengchanliangshi=function(){
return "面粉"
};
richman.mantou=function(){ //直接封装起来,外界只调用这个
this.shengchanliangshi();
this.chufang();
}
richman.men=function(){
this.mantou;
}
例子二:
var stopEvent=function(){ //封装成门面
e.stopPropagation();//阻止默认事件
e.preventDefault(); //阻止冒泡
}
$("#a").click(function(e){
stopEvent(e);
})