设计模式之工厂模式详解

 2023-03-29 11:27:49  阅读 0

一、概述

工厂模式是一种创建对象的设计模式。它允许客户端通过调用工厂方法来创建对象,而无需直接实例化对象。这样可以减少代码中的重复,提高代码的可维护性和灵活性。工厂模式包括简单工厂模式、工厂方法模式和抽象工厂模式三种形式。其中简单工厂模式适用于创建单一类型的对象,工厂方法模式适用于创建一组相关的对象,而抽象工厂模式则适用于创建多个相关对象的系列。

假设我们有一个简单的需求:根据客户端传递的参数创建不同类型的汽车对象。我们可以使用工厂模式来实现这个功能。

首先,定义一个抽象类Car和它的三个具体子类:Benz、BMW和Audi。

// 抽象类
public abstract class Car {
    public abstract void run();
}

// 具体子类
public class Benz extends Car {
    @Override
    public void run() {
        System.out.println("Benz is running.");
    }
}

public class BMW extends Car {
    @Override
    public void run() {
        System.out.println("BMW is running.");
    }
}

public class Audi extends Car {
    @Override
    public void run() {
        System.out.println("Audi is running.");
    }
}

接下来,实现一个CarFactory工厂类,根据客户端传递的参数创建对应的汽车对象并返回。

public class CarFactory {

    public static Car createCar(String carType) {
        if (carType.equalsIgnoreCase("Benz")) {
            return new Benz();
        } else if (carType.equalsIgnoreCase("BMW")) {
            return new BMW();
        } else if (carType.equalsIgnoreCase("Audi")) {
            return new Audi();
        } else {
            return null;
        }
    }
}

最后,在客户端代码中调用工厂方法来创建汽车对象。

public class Client {
    public static void main(String[] args) {
        Car car1 = CarFactory.createCar("Benz");
        car1.run(); // 打印 "Benz is running."

        Car car2 = CarFactory.createCar("BMW");
        car2.run(); // 打印 "BMW is running."

        Car car3 = CarFactory.createCar("Audi");
        car3.run(); // 打印 "Audi is running."
    }
}

通过工厂模式,我们可以实现创建不同类型的汽车对象,而无需在客户端代码中直接实例化汽车对象。这样可以让客户端代码更加简洁、可维护和灵活。

标签:

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码