深入浅出设计模式抽象工厂模式(Abstract Factory)
在设计模式中,抽象工厂模式(Abstract Factory)是一种提供创建一系列相关或相互依赖对象的接口,而无需指定具体类的模式。抽象工厂模式通常涉及以下几个关键组成部分:
- AbstractFactory:定义创建一系列产品对象的接口。
- ConcreteFactory:实现创建产品对象的具体工厂。
- AbstractProduct:为每种产品声明一个接口。
- ConcreteProduct:实现具体产品类。
- Client:仅通过抽象工厂和产品接口与其进行交互,而不关心具体实现。
以下是一个简单的抽象工厂模式的实现示例:
// 抽象产品A
public interface AbstractProductA {
void featureA();
}
// 抽象产品B
public interface AbstractProductB {
void featureB();
}
// 具体产品A1
public class ProductA1 implements AbstractProductA {
public void featureA() {
System.out.println("ProductA1 Feature");
}
}
// 具体产品B1
public class ProductB1 implements AbstractProductB {
public void featureB() {
System.out.println("ProductB1 Feature");
}
}
// 抽象工厂
public interface AbstractFactory {
AbstractProductA createProductA();
AbstractProductB createProductB();
}
// 具体工厂1
public class ConcreteFactory1 implements AbstractFactory {
public AbstractProductA createProductA() {
return new ProductA1();
}
public AbstractProductB createProductB() {
return new ProductB1();
}
}
// 客户端
public class Client {
private AbstractProductA productA;
private AbstractProductB productB;
public Client(AbstractFactory factory) {
productA = factory.createProductA();
productB = factory.createProductB();
}
public void interact() {
productA.featureA();
productB.featureB();
}
}
在客户端中,通过抽象工厂接口来创建相关产品,而不直接与具体类耦合,这样就能够实现产品的独立扩展和替换。
抽象工厂模式的优点是能够提高系统的可扩展性,易于替换和扩展具体产品的实现。
24.12KB
文件大小:
评论区