工厂方法模式是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。
抽象工厂模式是一种创建型设计模式, 它能创建一系列相关的对象, 而无需指定其具体类。
生成器模式是一种创建型设计模式, 使你能够分步骤创建复杂对象。 该模式允许你使用相同的创建代码生成不同类型和形式的对象。
原型模式是一种创建型设计模式, 使你能够复制已有对象, 而又无需使代码依赖它们所属的类。
总结:
- 利用语言自带的
clone
功能,例如:JavaScript
自带的Object.create
函数,可以实现原型模式,所以辨别方式就是寻找代码中是否存在 clone 函数 - 需要注意的地方是:
Object.create
只能实现浅拷贝,如果是复杂的类则需要利用对象展开符号简化拷贝操作。 - 优势在于,简化了生成新的类的方式,而且提升了性能(避免了每次都去 new 一个类的开销)
- 可以使用一个 原型工厂 来方便的缓存需要克隆的类
单例模式是一种创建型设计模式, 让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。
总结:
- 需要将 构造函数私有化,禁止从类外部去实例化
- 通过类内部的一个 静态方法去 new constructor,然后将实例保存到一个 私有的静态属性之中
- 多线程语言需要处理线程锁
适配器模式是一种结构型设计模式, 它能使接口不兼容的对象能够相互合作。
总结:
- 至少需要两个类,一个目标类,一个需要被适配的类
- 一般适配器通过继承目标类,然后接收并初始化一个内部的被适配者属性
- 通过重载来获取适配后的结果