1.设计模式之初体验—精读《JavaScript 设计模式》Addy Osmani著

同系列友情连接:


2.设计模式的分类—精读《JavaScript 设计模式》Addy Osmani著
3.Contructor(构造器)模式—精读《JavaScript 设计模式》Addy Osmani著

原始模式(proto-pattern):一种还没有经过“模式”测试的设计模式;

优秀的模式:若是模式能够执行如下操做,就被认为是优秀的模式:

  • 解决特殊问题。模式不该该只是获取原则或策略,它们须要获取解决方案。这只做为一种优秀模式不可或缺的要素。
  • 没有显而易见的解决方案。咱们会发现,解决问题的技术基原本自众所周知的基本原则。最好的设计模式一般会间接提供解决问题的方案——这被认为是解决与设计相关的最具挑战性问题的必要方法。
  • 描述业经验证的概念。设计模式须要证实它们的做用与描述相一致,而且若是没有证实这一点,就不能认真考虑该设计。若是一种模式其实是推测出来的,那么只有那些勇敢的人才可能尝试它。
  • 描述一种关系。在某些状况下,看起来多是一种模式描述了一种类型的模块。尽管一种实现看起来也是这样,但对模式的正式描述必须可以更深刻的理解它与代码关系的系统结构和机制。

反模式:描述一种针对于某种特定问题的不良解决方案,该方案会致使糟糕的状况发生;描述如何摆脱前述的糟糕状况以及如何创造好的解决方案。

JavaScript 中的反模式:

  • 在全局上下文中定义大量的变量污染全局命名空间;
  • 向 setTimeout 或 setInterval 传递字符串,而不是函数,这会触发 eval ( ) 的内部使用;
  • 修改 Object类的原型(这是一个特别不良的反模式);
  • 之内敛的形式使用 JavaScript,它是不可改变的;
  • 在使用document.createElement 等原生DOM 方法更适合的状况下使用 document.write。多年以来document.write一直都是在被严重滥用,并有至关多的缺点,包括:若是在页面加载完成后执行document.write,它实际上会重写咱们所在的页面,而document.createElement则不会。访问此网站能够看到它运行的实例。document.write也没法与XHTML相适,这是选择像document.createElement这样更为DOM友好的方法比较有利的另外一个缘由。

设计模式的类别:

建立型设计模式:专一于处理对象建立机制,以适合给定状况的方式来建立对象。建立对象的基本方法可能致使项目复杂性增长,而这些模式旨在经过控制建立过程来解决这种问题。
  • Constructor(构造器)
  • Factory(工厂)
  • Abstract(抽象)
  • Prototype(原型)
  • Singleton(单例)
  • Builder(生成)
结构型设计模式:结构型模式与对象组合有关,一般能够用于在不一样对象之间创建关系的简单方法。这种模式有助于确保在系统某一部分发生变化时,系统的整个结构不须要同时改变。同时对于不适用因某一特定目的而改变的系统部分,这种模式也可以帮助它们完成重组。
  • Decorator(装饰者)
  • Facade(外观)
  • Flyweight(享元)
  • Adapter(适配器)
  • Proxy(代理)
行为设计模式:行为模式专一于改善或简化系统中不一样对象之间的通讯。
  • Iterator(迭代器)
  • Mediator(中介者)
  • Observe(观察者)
  • Visitor(访问者)

读后感

  1. 以上内容直接摘抄于原书内容,若有笔误,欢迎指点,定会及时更改;
  2. 针对于各大论坛中设计模式的技术分享有太多的技术等级有差别、分享内容片面不具体,技术帖浑水摸鱼等问题,本书是一本具备极高专业度与承认度的书,是值得花时间去研究与学习的一本好书;
  3. 下次更新将着重对第九章:JavaScript 设计模式 逐次精读并实操应用。
相关文章
相关标签/搜索