kemplaw / dspt-demo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

设计模式 - TypeScript 实践例子

创建型模式

工厂方法模式

工厂方法模式是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。

抽象工厂模式

抽象工厂模式是一种创建型设计模式, 它能创建一系列相关的对象, 而无需指定其具体类。

生成器模式

生成器模式是一种创建型设计模式, 使你能够分步骤创建复杂对象。 该模式允许你使用相同的创建代码生成不同类型和形式的对象。

原型模式

原型模式是一种创建型设计模式, 使你能够复制已有对象, 而又无需使代码依赖它们所属的类。

总结:

  • 利用语言自带的 clone 功能,例如:JavaScript 自带的 Object.create 函数,可以实现原型模式,所以辨别方式就是寻找代码中是否存在 clone 函数
  • 需要注意的地方是:Object.create 只能实现浅拷贝,如果是复杂的类则需要利用对象展开符号简化拷贝操作。
  • 优势在于,简化了生成新的类的方式,而且提升了性能(避免了每次都去 new 一个类的开销)
  • 可以使用一个 原型工厂 来方便的缓存需要克隆的类

单例模式

单例模式是一种创建型设计模式, 让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。

总结:

  • 需要将 构造函数私有化,禁止从类外部去实例化
  • 通过类内部的一个 静态方法去 new constructor,然后将实例保存到一个 私有的静态属性之中
  • 多线程语言需要处理线程锁

结构型模式

适配器模式

适配器模式是一种结构型设计模式, 它能使接口不兼容的对象能够相互合作。

总结:

  • 至少需要两个类,一个目标类,一个需要被适配的类
  • 一般适配器通过继承目标类,然后接收并初始化一个内部的被适配者属性
  • 通过重载来获取适配后的结果

行为模式

About

License:MIT License


Languages

Language:TypeScript 98.3%Language:HTML 1.7%