美文网首页
javascript设计模式——装饰者模式

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

作者: 蟹老板爱写代码 | 来源:发表于2018-04-02 10:56 被阅读0次

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

需求:对表单输入框进行校验,当点击的时候,执行相应的回调函数。
分析:如果简单的使用对单个输入框尽心事件绑定,不利于以后扩展,每对多一个输入框校验,就要绑定一次,重复代码较多,因此可以使用装饰者模式。

  <div>
    <input type="text" id='tel_input'> <div id="tel_demo_text">tel_demo_text</div>
  </div>
  <div>
    <input type="text" id='name_input'> <div id="name_demo_text">name_demo_text</div>
  </div>
  <script>
    // 使用装饰器模式对输入框添加click事件
    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
      }
    }
  
      decorator('tel_input', function(){
        document.getElementById('tel_demo_text').style.display = 'none'
      })
      decorator('name_input', function(){
        document.getElementById('name_demo_text').style.display = 'none'
      })
    </script>

Q&A
装饰者模式和适配器模式对比
适配器方法是对原有对象的适配,添加的方法与原有方法功能上大致相似。但是装饰者提供的方法与原来的方法功能项有一定区别。再有,使用适配器时我们新增的方法是要调用原有的方法。不过在装饰者模式中,不需要了解对象原有的功能,并且对象原有的方法照样可以原封不动的使用。

相关文章

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

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

  • 装饰者模式

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

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

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

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

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

  • 设计模式

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

  • 组合模式设计

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

  • 装饰者模式设计

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

  • 适配器模式

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

  • 设计模式笔记汇总

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

  • java IO 的知识总结

    装饰者模式 因为java的IO是基于装饰者模式设计的,所以要了解掌握IO 必须要先清楚什么事装饰者模式(装饰者模式...

网友评论

      本文标题:javascript设计模式——装饰者模式

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