什么是工厂模式怎么实现

Java 投稿 16400 0 评论

什么是工厂模式怎么实现

工厂模式是一种创建型设计模式,它提供了一种创建对象的方法,而不必指定将要创建的对象的确切类。在工厂模式中,我们在创建对象时不会直接使用 new 关键字,而是使用工厂方法来处理对象的创建。

工厂模式的优点

1:  降低代码耦合性:客户端不需要知道要实例化的对象的类名,降低了客户端与具体产品对象之间的耦合。

2:  降低了代码的复杂度:将对象的创建和使用分离,代码更易于维护。 

3:  代码可扩展性更好:增加新的产品对象时,只需要添加新的具体产品类和相应的工厂类,不需要修改原有的代码。

工厂模式的实现

工厂模式有三种实现方式:简单工厂模式、工厂方法模式和抽象工厂模式。

简单工厂模式

简单工厂模式又称为静态工厂方法模式,它是通过一个工厂类来创建不同类型的对象,客户端只需要传入参数,就可以得到所需的对象,而无需知道具体的创建过程。下面是简单工厂模式的代码实现:

public class SimpleFactory {
    public static Product createProduct(int type {
        switch (type {
            case 1:
                return new ConcreteProduct1(;
            case 2:
                return new ConcreteProduct2(;
            default:
                throw new IllegalArgumentException(“Invalid type”;
        }
    }
}

工厂方法模式

工厂方法模式定义了一个用于创建对象的接口,让子类决定将哪一个类实例化。工厂方法模式使一个类的实例化延迟到其子类。下面是工厂方法模式的代码实现:

public interface Factory {
    Product createProduct(;
}
public class ConcreteFactory1 implements Factory {
    public Product createProduct( {
        return new ConcreteProduct1(;
    }
}
public class ConcreteFactory2 implements Factory {
    public Product createProduct( {
        return new ConcreteProduct2(;
    }
}

抽象工厂模式

抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。下面是抽象工厂模式的代码实现:

public interface AbstractFactory {
    ProductA createProductA(;
    ProductB createProductB(;
}
public class ConcreteFactory1 implements AbstractFactory {
    public ProductA createProductA( {
        return new ConcreteProductA1(;
    }
public ProductB createProductB( {
    return new ConcreteProductB1(;
}
}
public class ConcreteFactory2 implements AbstractFactory {
    public ProductA createProductA( {
        return new ConcreteProductA2(;
    }
public ProductB createProductB( {
    return new ConcreteProductB2(;
}
}

总结

工厂模式是一种非常常用的设计模式,它可以帮助我们更好地组织代码并提高代码的可扩展性和可维护性。在实际开发中,我们应该根据具体的需求选择不同的工厂模式来实现。

编程笔记 » 什么是工厂模式怎么实现

赞同 (76) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽