常用的设计模式

创建型模式

工厂模式

创建对象时不会对客户端暴露创建逻辑,并且时通过使用一个共同的接口来指向新创建的对象,用工厂方法代替 new 操作的一种模式

class Creator {
    create (name) {
        return new Animal(name)
    }
}
class Animal {
    constructor (name) {
        this.name = name
    }
}
const creator = new Creator()
const duck = creator.create('Duck')
console.log(duck.name)

const chicken = creator.create('Chicken')
console.log(chicken.name)

单例模式

保证一个类仅有一个实例,并提供一个访问它的全局访问点

原型模式

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象

结构型模式

适配器模式

解决俩个软件实体间的接口不兼容的问题。使用适配器模式之后,原本由于接口不兼容而不能工作的俩个软件实体可以一起工作

代理模式

为一个对象提供一个代用品或占位符,以便控制对它的访问

行为型模式

策略模式

定义一系列的算法,把他们一个个封装起来,并使他们可以替换

迭代器模式

迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。

观察者模式(发布-订阅)

定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。

命令模式

定义一个传令者,暴露一个统一的接口给发布者,发布者不用去管接受者如何执行命令,做到发布者和接受者的解耦。

状态模式

状态模式的意图是让一个对象在其内部状态改变的时候,其行为也随之改变。状态模式需要对每一个系统可能取得的状态创立一个状态类的子类。当系统的状态变化时,系统便改变所选的子类。

参考

Last updated

Was this helpful?