外观模式(Facade)/门面模式

外观模式(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);
})

你可能感兴趣的:(外观模式(Facade)/门面模式)