工厂方法模式是一种常用的对象创建型设计模式,它提供了一种创建对象的标准方法,可以将对象的创建与对象的表示分离,使程序易于扩展和维护。

模式特点

  • 创建对象与表示分离:将对象的创建过程封装在工厂类中,隐藏了对象的创建细节。
  • 易于扩展:当需要创建新的对象时,只需扩展工厂类即可,无需修改客户端代码。
  • 降低耦合度:客户端代码与具体的产品类解耦,降低了系统之间的耦合度。

应用场景

  • 当系统需要创建的对象具有共同的接口,且其具体类在运行时需要动态指定时。
  • 当系统需要创建的对象数量较多,且具有相同的创建逻辑时。
  • 当系统需要创建的对象较为复杂,且创建过程需要分步进行时。

代码示例

以下是一个简单的工厂方法模式示例:

// 抽象产品
interface Product {
    void use();
}

// 具体产品A
class ProductA implements Product {
    public void use() {
        System.out.println("使用产品A");
    }
}

// 具体产品B
class ProductB implements Product {
    public void use() {
        System.out.println("使用产品B");
    }
}

// 抽象工厂
interface Factory {
    Product createProduct();
}

// 具体工厂A
class FactoryA implements Factory {
    public Product createProduct() {
        return new ProductA();
    }
}

// 具体工厂B
class FactoryB implements Factory {
    public Product createProduct() {
        return new ProductB();
    }
}

// 客户端代码
public class Client {
    public static void main(String[] args) {
        Factory factory = new FactoryA();
        Product product = factory.createProduct();
        product.use();
    }
}

更多设计模式内容,请访问设计模式教程

图片展示

工厂方法模式