工厂方法模式

title

工厂方法模式是一种常用的创建型设计模式,它提供了一种将对象的创建委托给子类的方法。在工厂方法模式中,抽象工厂定义了一个用于创建对象的接口,而具体工厂则负责实现该接口,创建具体的产品对象。

工厂方法模式的核心思想是将对象的创建与使用分离开来,客户端不需要知道实际创建的对象类型,只需要知道创建对象的接口即可。这样可以使客户端代码更加简洁、可维护、可扩展,同时也符合开闭原则。

以下是一个工厂方法模式的示例代码:

// 定义一个抽象产品接口
interface Product {
    void use();
}

// 定义具体产品类
class ConcreteProduct1 implements Product {
    public void use() {
        System.out.println("使用具体产品1");
    }
}

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

// 定义一个抽象工厂接口
interface Factory {
    Product createProduct();
}

// 定义具体工厂类
class ConcreteFactory1 implements Factory {
    public Product createProduct() {
        return new ConcreteProduct1();
    }
}

class ConcreteFactory2 implements Factory {
    public Product createProduct() {
        return new ConcreteProduct2();
    }
}

// 客户端使用
public class Client {
    public static void main(String[] args) {
        Factory factory1 = new ConcreteFactory1();
        Product product1 = factory1.createProduct();
        product1.use();

        Factory factory2 = new ConcreteFactory2();
        Product product2 = factory2.createProduct();
        product2.use();
    }
}

在上面的代码中,Product 是抽象产品接口,ConcreteProduct1 和 ConcreteProduct2 是具体产品类。Factory 是抽象工厂接口,ConcreteFactory1 和 ConcreteFactory2 是具体工厂类。在客户端使用时,先创建具体工厂对象,然后通过具体工厂对象创建具体产品对象。这样,当需要新增产品时,只需要增加具体产品类和具体工厂类即可,不需要修改客户端代码。

powered by Gitbook© 2023 编外计划 | 最后修改: 2023-11-24 03:37:01

results matching ""

    No results matching ""