使用JavaScript代码举例说明常用的设计模式
时间: 2024-11-12 20:41:33 浏览: 7
JavaScript设计模式学习之“类式继承”
在JavaScript中,设计模式是一种常见的软件设计经验总结,用于解决常见问题并提高代码的复用性和可维护性。这里我会列举几个常见的设计模式示例:
1. **工厂模式** (Factory Pattern) - 它创建对象而不暴露其内部创建逻辑。例如:
```javascript
function createAnimal(type) {
switch (type) {
case 'cat':
return new Cat();
case 'dog':
return new Dog();
default:
throw new Error('Invalid animal type');
}
}
const cat = createAnimal('cat'); // 返回Cat实例
```
2. **单例模式** (Singleton Pattern) - 确保一个类只有一个实例,并提供全局访问点。例如:
```javascript
let instance;
class Singleton {
static getInstance() {
if (!instance) {
instance = new Singleton();
}
return instance;
}
}
// 使用时
const singleton = Singleton.getInstance();
```
3. **观察者模式** (Observer Pattern) - 当一个对象的状态改变时,所有依赖它的对象都会得到通知。例子:
```javascript
class Subject {
constructor() {
this.observers = [];
}
addObserver(observer) {
this.observers.push(observer);
}
removeObserver(observer) {
this.observers = this.observers.filter(o => o !== observer);
}
notify(data) {
this.observers.forEach(observer => observer.update(data));
}
}
class Observer {
update(data) {
console.log(`Data updated: ${data}`);
}
}
```
阅读全文