![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
wl_
这个作者很懒,什么都没留下…
展开
-
code设计模式-策略模式
1.定义:定义一系列算法,把它们一个一个封装起来,并且使它们可以相互替换。 策略模式可以用来减少if-else 语句的使用。2.实例:个人年终奖计算,奖金金额与个人薪资和绩效等级有关。 原始实现方式 var calculateBonus = function(level,salary){ if(level === 'A++'){ return 4*salary; }原创 2017-07-10 18:39:21 · 239 阅读 · 0 评论 -
设计模模式-享元模式
1.描述:享元模式是一种用于性能优化的模式,享元模式的目标是尽量减少共享对象的数量,其关键在于划分出内部属性和外部属性。2.内部属性和外部属性:内部属性可以理解为对象可共享的属性,比如:不同人都有的名字属性;外部属性可以理解为同一对象在不同场景下就不同的属性,比如:衣服,一个人冬天穿的衣服和夏天穿的衣服是不同的。 如何划分内部属性和外部属性: 内部属性存储于对象内部 内部属性可以被一些对象共享 内原创 2017-08-05 16:24:25 · 311 阅读 · 0 评论 -
code设计模式-模板方法模式
1.描述:模板方法模式是一种只需要使用继承就可以实现的非常简单的模式,模式由两部分组成-抽象父类和具现子类。通常在抽象父类中封装了子类的算法框架。2.实例:Coffee or Tea父类-饮料-步骤: 把水煮沸 用沸水冲泡饮料 把饮料倒进杯子 加调料 var Beverage = function(){}; Beverage.prototype.boilWater = function(){原创 2017-08-05 11:50:26 · 214 阅读 · 0 评论 -
code设计模式-观察者模式
1.定义:观察者模式又被称为发布-订阅模式,它描述对象间一对多的依赖关系,即当一个对象的状态发生改变时,所有依赖它的对象都将得到通知。2.实例,背景:买房者对于某售房处房屋信息的关注,通过观察者模式实现及时获得房屋信息。//通用观察者模式功能 var event = { clientList:{},//买房者关注的房屋信息列表 listen:function(key,fn){//关注的房原创 2017-07-27 22:12:28 · 345 阅读 · 0 评论 -
code设计模式-其他模式
1.职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。js的AOP编程能够很好的实现它。2.中介者模式:解除对象与对象之间的强耦合关系,使对象之间的通信更多的通过中间对象来实现。3.装饰者模式:给对象动态的增加职责,可以理解为“把对象的属性封装成对象”的一种编程模式。恰好AOP又能够很好的实现它。原创 2017-08-09 10:21:53 · 365 阅读 · 0 评论 -
code设计模式-组合模式
1.描述:组合模式就是一种用小的子对象来构建大对象的一种编程思想。 2.用途: 表示树形结构 – 具体功能分布在各子对象中 利用对象多态性统一对待组合对象和单个对象 3.实例 - - - - - -扫描文件夹//文件夹对象 var Folder = function(name){ this.name = name; this.files = []; };Folder.proto原创 2017-07-31 21:26:46 · 248 阅读 · 0 评论 -
code设计模式-迭代器模式
1.定义:迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。2.分类:内部迭代器和外部迭代器2.1.内部迭代器:内部已经定义好了迭代规则,它完全接手整个迭代过程。var each = function(arr,callback){ for(var i=0,l = arr.length;i<l;i++){ callback.call(a原创 2017-07-17 21:37:12 · 204 阅读 · 0 评论 -
code设计模式-代理模式
1.定义:代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。2.意义:帮助被代理对象处理某些事物,已达到减小自身工作复杂度、增强安全性等等。3.代码示例:单图片预加载实现//DOM节点,img标签 var myImage = (function(){ var imgnode = document.createElement('img'); document.append原创 2017-07-16 18:50:50 · 169 阅读 · 0 评论 -
code设计模式-单例模式
1.定义:保证一个类仅有一个实例,并提供一个全局访问入口。 2.应用场景描述:比如全局缓存对象、单击登录按钮弹出的登录浮窗等。 3.单例模式实现 标准单例模式 var Singleton = function(name){ this.name = name; }; Singleton.prototype.getName = function(){ r...原创 2017-07-06 00:07:47 · 204 阅读 · 0 评论 -
code设计模式-命令模式
1.描述:用于向某些对象发送请求,但并不知道接受请求的对象以及被请求的操作是什么的场景中。 2.实例,场景:界面上3个按钮点击后要执行不同的操作 传统面向对象语言实现命令模式的方法 var btn1 = document.getElementById('btn1'); var btn2 = document.getElementById('btn2'); var btn3 = document.ge原创 2017-07-29 00:37:19 · 404 阅读 · 0 评论