深入浅出设计模式抽象工厂模式(Abstract Factory)

在设计模式中,抽象工厂模式Abstract Factory)是一种提供创建一系列相关或相互依赖对象的接口,而无需指定具体类的模式。抽象工厂模式通常涉及以下几个关键组成部分:

  1. AbstractFactory:定义创建一系列产品对象的接口。
  2. ConcreteFactory:实现创建产品对象的具体工厂。
  3. AbstractProduct:为每种产品声明一个接口。
  4. ConcreteProduct:实现具体产品类。
  5. 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();
    }
}

在客户端中,通过抽象工厂接口来创建相关产品,而不直接与具体类耦合,这样就能够实现产品的独立扩展和替换。

抽象工厂模式的优点是能够提高系统的可扩展性,易于替换和扩展具体产品的实现。

rar 文件大小:24.12KB