常用的设计模式
创建型模式
工厂模式
创建对象时不会对客户端暴露创建逻辑,并且时通过使用一个共同的接口来指向新创建的对象,用工厂方法代替 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?