工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,而是使用一个共同的接口来指向新创建的对象。

工厂模式是什么?工厂模式是什么?(图片来源网络,侵删)

工厂模式的主要目的是将对象的创建过程封装起来,使得客户端不需要关心对象的创建细节,只需要调用工厂类的相应方法即可得到所需的对象,这样,当我们需要更改对象的创建逻辑时,只需修改工厂类,而无需修改客户端代码

工厂模式有以下几种类型:

1、简单工厂模式(Simple Factory Pattern):又称为静态工厂方法模式,它定义了一个用于创建对象的接口,但由子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。

2、工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。

3、抽象工厂模式(Abstract Factory Pattern):提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。

4、建造者模式(Builder Pattern):将一个复杂对象的构建与它的ref="https://xwenw.com/tag/%e8%a1%a8%e7%a4%ba" target="_blank">表示分离,使得同样的构建过程可以创建不同的表示。

5、原型模式(Prototype Pattern):用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。

6、单例模式(Singleton Pattern):保证一个类仅有一个实例,并提供一个访问它的全局访问点。

下面是一个简单的工厂模式示例:

// 创建一个接口
interface Car {
    void run();
}
// 实现接口的类A
class ACar implements Car {
    public void run() {
        System.out.println("ACar is running");
    }
}
// 实现接口的类B
class BCar implements Car {
    public void run() {
        System.out.println("BCar is running");
    }
}
// 创建一个工厂类
class CarFactory {
    public Car createCar(String type) {
        if (type == null) {
            return null;
        } else if (type.equalsIgnoreCase("A")) {
            return new ACar();
        } else if (type.equalsIgnoreCase("B")) {
            return new BCar();
        }
        return null;
    }
}

在这个例子中,我们定义了一个Car接口和两个实现该接口的类ACarBCar,然后我们创建了一个CarFactory工厂类,它有一个createCar方法,该方法根据传入的参数来创建并返回相应的Car对象,客户端只需要调用CarFactorycreateCar方法,而不需要关心如何创建Car对象。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。