javascript设计模式外观模式的原理和使用方法

本文介绍了javascript设计模式外观模式的原理和使用方法。与您分享,供您参考,如下所示:简介:外观模式是一种常用的结构设计模

本文介绍了javascript设计模式外观模式的原理和使用方法。与您分享,供您参考,如下所示:

简介:外观模式是一种常用的结构设计模式。引入了外观角色,简化了客户端与子系统的交互,为复杂的子系统调用提供了统一的入口,隐藏了系统的复杂性。度,减少子系统与客户端的耦合。

定义:为子系统中的一组接口提供统一入口。外观模式定义了一个高级接口,使该子系统更易于使用。

场景:我们画一个圆来介绍外观模式。

var Rectangle = function(){

this.draw = function(){

console.log(‘画一个矩形’);

}

}

var Circle = function(){

this.draw = function(){

console.log(‘画一个圆’);

}

}

var Triangle = function(){

this.draw = function(){

console.log(‘画一个三角形’);

}

}

var ShapeMaker = function(){

this.rectangle = new Rectangle();

this.circle = new Circle();

this.triangle = new Triangle();

this.drawRectangle = function(){

this.rectangle.draw();

}

this.drawCircle = function(){

this.circle.draw();

}

this.drawTriangle = function(){

this.triangle.draw();

}

}

var shapeMaker = new ShapeMaker();

shapeMaker.drawRectangle(); //画一个矩形

shapeMaker.drawCircle(); //画一个圆

shapeMaker.drawTriangle(); //画一个三角形

是不是豁然开朗?其实我们日常最常用的就是外观模式。我们的工具类,jquery,包括一些浏览器兼容,我们都会把他们封装到一个对象里。

这就是外观模式提倡的把复杂的操作封装到一个简单接口中。几乎所有的涉及多个业务对象交互的场景都可以考虑使用外观模式进行重构。

外观模式总结:

优点:

* 对客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目,并且提升使用便捷度。

* 实现了客户端与子系统之间的松耦合关系,这使得子系统的变化不会影响客户端。

缺点:

* 不能姮好的限制客户端直接使用子系统类

* 如果设计不当,增加新的子系统可能需要修改外观类的源代码,违背了开关原则

适用场景:

* 需要对一个复杂子系统提供一个简单入口时可以采用外观模式


下载说明:
1. 本站所有资源来源于网络和用户上传,如有侵权请联系站长
2. 本站分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,商用请支持正版!不得违反国家法律,否则后果自负!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!

本站的资源均来自于互联网,仅为资源共享、学习参考之目的,其版权均归原作者及其网站所有,如有侵权请留言联系:admin,转转请注明出处:http://zhanmr.com/6162.htm

发表评论

电子邮件地址不会被公开。 必填项已用*标注