主题
设计模式
设计模式代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。
创建型设计模式
创建型设计模式有 5 种,分别是:单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式。
单例模式
单例模式(Singleton)是为了避免重复创建实例导致的资源浪费或状态冲突。它确保全局唯一实例,并提供全局访问点。
实现示例
通过静态属性 instance
保存唯一实例,构造函数内检查重复创建。
javascript
// 单例模式定义
class Logger() {
constructor() {
if (Logger.instance) { // 如果实例已存在,则返回该实例
return Logger.instance
}
this.logs = []
Logger.instance = this // 确保单例
}
log(message) {
this.logs.push(message)
console.log(`[LOG] ${message}`)
}
}
// 使用示例
const logger1 = new Logger()
logger1.log('HeFirst logllo') // [LOG] First log
const logger2 = new Logger()
logger2.log('Second log') // [LOG] Second log
console.log(logger1 === logger2) // true
工厂模式
工厂模式(Factory)一个用于创建对象的接口,这个接口由子类决定实例化哪一个类。该模式使一个类的实例化延迟到了子类。而子类可以重写接口方法以便创建的时候指定自己的对象类型。
实现示例
javascript
// 工厂方法定义
class Product {
}