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 设计模式 逐次精读并实操应用。

你可能感兴趣的:(1.设计模式之初体验—精读《JavaScript 设计模式》Addy Osmani著)