设计模式之结构型装饰者模式
2014-05-21 09:55
302 查看
在不改变原对象的基础上,通过对其进行包装扩展(添加属性或者方法)使原有对象可以满足用户的更复杂需求。
静止是相对的,运动是绝对的,所以没有一成不变的需求。在实际项目开发中需求总在不断变化,当原有的功能已经不能满足用户的需求时,我们要做的就是在这个基础上添砖加瓦,设置新功能和属性来满足用户提出的需求,这就是装饰者模式要做的。
装饰者模式对对象的扩展是一种良性扩展,不用了解其具体实现,只是在外部进行了一次封装扩展。
静止是相对的,运动是绝对的,所以没有一成不变的需求。在实际项目开发中需求总在不断变化,当原有的功能已经不能满足用户的需求时,我们要做的就是在这个基础上添砖加瓦,设置新功能和属性来满足用户提出的需求,这就是装饰者模式要做的。
装饰者模式对对象的扩展是一种良性扩展,不用了解其具体实现,只是在外部进行了一次封装扩展。
// 装饰者 var decorator = function(input, fn) { // 获取事件源 var input = document.getElementById(input); // 若事件源已经绑定事件 if(typeof input.onclick === 'function') { // 缓存事件源原有回调函数 var oldClickFn = input.onclick; // 为事件源定义新的事件 input.onclick = function() { // 事件源原有回调函数 oldClickFn(); // 执行事件源新增回调函数 fn(); } } else { input.onclick = fn; } }
相关文章推荐
- 设计模式10——结构型模式之装饰者模式
- 白话设计模式 --结构型模式--装饰者(Decorator)模式,适配器模式和外观模式
- 设计模式 — 结构型模式 装饰者模式
- 设计模式学习之装饰者模式(Decorator,结构型模式)(16)
- 面向对象设计模式之结构型模式(一):装饰者模式
- 结构型设计模式---装饰者模式(Decorator)
- 设计模式 (三)——装饰者模式(Decorator,结构型)
- PHP设计模式:结构型之装饰者(Decorator)
- 设计模式系列二结构型之(装饰者模式)
- 设计模式——装饰者模式(结构型模式)
- 设计模式 — 结构型模式 装饰者模式
- 23种设计模式之结构型模式(1)-------装饰者设计模式。
- 设计模式(结构型)之装饰者模式(Decorator Pattern)
- 23种设计模式(8)_结构型_装饰者模式(Decorator Pattern)
- 设计模式(十一)装饰者模式(Decorator)-结构型
- 【设计模式基础】结构型模式 - 3 - 装饰者(Decorator)
- 设计模式->结构型模式->装饰者模式
- 设计模式10——结构型模式之装饰者模式
- 设计模式--FlyWeight--结构型
- 设计模式--bridge--结构型