Java设计模式:工厂方法模式

工厂方法模式

定义:

定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使得一个类的实例化延迟到子类。

工厂方法模式将工厂抽象化,并定义一个创建对象接口。每增加新产品,只需要增加该产品及对应的实现工厂类,将对象的实例延迟到子类,这样设计就符合开闭原则。在使用时,只需知道产品对应的具体工厂,关注具体的创建过程,甚至不需要知道具体产品类的类名,当我们选择哪个具体工厂时,就已经决定了实际创建的产品是哪个了。

但缺点在于,每增加一个产品都需要增加一个具体产品类和实现工厂类,使得系统中类的个数成倍增加,在一定程度上增加了系统的复杂度,同时也增加了系统具体类的依赖。

代码实例:

产品相关类:

abstract class Product {
    
    
    void product() {
    
    }
}

class ProductA extends Product{
    
    
    void product(){
    
    
        System.out.println("产品A");
    }
}

class ProductB extends Product{
    
    
    void product(){
    
    
        System.out.println("产品B");
    }
}

工厂相关类:

interface Factory {
    
    
    Product creteProduct();
}

class FactoryProductA implements Factory{
    
    

    public ProductA creteProduct() {
    
    
        System.out.println("制造产品A...");
        return new ProductA();
    }
}

class FactoryProductB implements Factory {
    
    

    public ProductB creteProduct() {
    
    
        System.out.println("制造产品B...");
        return new ProductB();
    }
}

使用者相关类:

public class FactoryMethod {
    
    

    public static void main(String[] args) {
    
    
        Factory factoryA = new FactoryProductA();
        factoryA.creteProduct().product();

        Factory factoryB = new FactoryProductB();
        factoryB.creteProduct().product();
    }

}

猜你喜欢

转载自blog.csdn.net/qq_40042416/article/details/126751035