美文网首页
JavaScript设计模式 | 12-装饰者模式

JavaScript设计模式 | 12-装饰者模式

作者: 夏海峰 | 来源:发表于2018-08-20 14:11 被阅读3次

1、模式定义

装饰者模式,在改变原对象的基础上,通过对其进行包装拓展(增加属性或方法),使其能够满足用户更为复杂的需求。

2、生活中的装饰者模式

新买毛坯房并不能满足我们的住宅需求,因此我们需要采购一些装饰材料和家居对毛坯房进行装饰。这个装饰过程,事实上并没有改变原有毛坯房的结构。像这样的装饰,即装饰者模式。

3、装饰者模式 举例

// 装饰者模式:封装一个用于装饰者模式的功能方法

var decorator = function(inputId,fn){
    var input = document.getElementById(inputId);
    
    // 当事件源已经绑定过事件时
    if(typeof input.onclick === 'function'){
        var oldClick = input.onclick;
        input.onclick = function(){
            // 保留旧的默认的onclick事件逻辑
            oldClick();
            // 追加新的能够满足需求的事件逻辑
            fn();
        }
    }else {
        // 当事件源没有绑定过事件时
        input.onclick = fn;
    }
}

// 测试,为输入框架追加事件
decorator('tel_input_id',function(){
    console.log("新增的事件处理逻辑");
});
decorator('tel_input_id',function(){
    console.log("再增加一个事件处理逻辑");
});

从上述示例看到,通过装饰者模式,无论事件源对象之前是否绑定过事件逻辑,我们都可以轻松地为其增加新的事件逻辑。事实上,装饰者模式,就是对原有对象的扩展,为其增加新的属性或方法。


完!!!

相关文章

  • JavaScript设计模式 | 12-装饰者模式

    1、模式定义 装饰者模式,在改变原对象的基础上,通过对其进行包装拓展(增加属性或方法),使其能够满足用户更为复杂的...

  • JavaScript 设计模式核⼼原理与应⽤实践 之 结构型设计

    JavaScript 设计模式核⼼原理与应⽤实践 之 结构型设计模式 装饰器模式,又名装饰者模式。它的定义是“在不...

  • 装饰者模式

    JavaScript 设计模式 张容铭第十二章 房子装修--装饰者模式 (102页) 装饰者模式(Decorato...

  • javascript设计模式——装饰者模式

    装饰者模式:在不改变原对象的基础上,通过对其进行包装扩展,使原有对象可以满足用户的更复杂需求 需求:对表单输入框进...

  • 装饰者模式【javascript设计模式】

    其实生命就是这样,从无到有,从稚嫩到成熟。现状态转变自前一个状态,只是多了点东西,它们就变得相互独立,形同陌路。 ...

  • 设计模式

    设计模式 单例模式、装饰者模式、

  • 组合模式设计

    一、设计模式 javascript里面给我们提供了很多种设计模式: 工厂、桥、组合、门面、适配器、装饰者、享元、代...

  • 装饰者模式设计

    一、设计模式 javascript里面给我们提供了很多种设计模式: 工厂、桥、组合、门面、适配器、装饰者、享元、代...

  • 适配器模式

    一、设计模式 javascript里面给我们提供了很多种设计模式: 工厂、桥、组合、门面、适配器、装饰者、享元、代...

  • 设计模式笔记汇总

    目录 设计原则 “依赖倒置”原则 未完待续... 设计模式 设计模式——策略模式 设计模式——装饰者模式 设计模式...

网友评论

      本文标题:JavaScript设计模式 | 12-装饰者模式

      本文链接:https://www.haomeiwen.com/subject/wnfliftx.html