返回
打造科技产品的创新性,一个灵巧的设计模式,简单工厂模式
前端
2023-10-08 21:20:35
一、简单工厂模式的定义与作用
1. 简单工厂模式的定义
简单工厂模式是一种创建型设计模式。它允许您使用一个工厂对象来创建对象,而无需指定具体的类。这种模式将对象创建与应用程序的其余部分分离,从而使代码更灵活和可维护。
2. 简单工厂模式的作用
简单工厂模式的作用有以下几个方面:
- 降低耦合性:简单工厂模式将对象创建与应用程序的其余部分分离,从而降低了耦合性。这使得代码更容易维护和重用。
- 提高灵活性:简单工厂模式允许您在运行时更改要创建的对象的类型。这使得代码更灵活,更容易适应变化。
- 提高可扩展性:简单工厂模式使得向应用程序中添加新的对象类型变得更容易。这提高了应用程序的可扩展性。
二、简单工厂模式的实现
1. 类图
简单工厂模式的类图如下图所示:
+----------------+
| Factory |
+----------------+
| - createProduct() |
+----------------+
+--------------------+
| Product |
+--------------------+
| - operation() |
+--------------------+
+----------------------+
| ConcreteProductA |
+----------------------+
| - operation() |
+----------------------+
+----------------------+
| ConcreteProductB |
+----------------------+
| - operation() |
+----------------------+
2. 代码示例
class Factory {
createProduct(type) {
switch (type) {
case 'A':
return new ConcreteProductA();
case 'B':
return new ConcreteProductB();
default:
throw new Error('Invalid product type');
}
}
}
class Product {
operation() {
throw new Error('This method should be implemented by subclasses');
}
}
class ConcreteProductA extends Product {
operation() {
console.log('ConcreteProductA.operation()');
}
}
class ConcreteProductB extends Product {
operation() {
console.log('ConcreteProductB.operation()');
}
}
const factory = new Factory();
const productA = factory.createProduct('A');
productA.operation(); // ConcreteProductA.operation()
const productB = factory.createProduct('B');
productB.operation(); // ConcreteProductB.operation()
三、简单工厂模式的优缺点
1. 优点
- 降低耦合性
- 提高灵活性
- 提高可扩展性
2. 缺点
- 可能导致代码难以阅读和维护
- 可能导致性能问题
- 可能导致可测试性降低