当前位置:实例文章 » C#开发实例» [文章]设计模式 - 工厂模式

设计模式 - 工厂模式

发布人:shili8 发布时间:2023-07-30 08:13 阅读次数:94

工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们使用一个工厂类来创建对象,而不是直接在代码中使用 new 关键字实例化对象。这样做的好处是,我们可以将对象的创建逻辑封装在工厂类中,使得代码更加灵活和可维护。

下面是一个简单的示例,展示了如何使用工厂模式创建不同类型的汽车对象。

首先,我们定义一个抽象的汽车接口:

java
public interface Car {
    void drive();
}


然后,我们创建两个具体的汽车类,实现汽车接口:

java
public class SedanCar implements Car {
    @Override
    public void drive() {
        System.out.println(Driving a sedan car.);
    }
}

public class SUVCar implements Car {
    @Override
    public void drive() {
        System.out.println(Driving an SUV car.);
    }
}


接下来,我们创建一个工厂类,用于创建汽车对象:

java
public class CarFactory {
    public Car createCar(String type) {
        if (type.equalsIgnoreCase(sedan)) {
            return new SedanCar();
        } else if (type.equalsIgnoreCase(suv)) {
            return new SUVCar();
        } else {
            throw new IllegalArgumentException(Invalid car type:  + type);
        }
    }
}


在上面的代码中,我们使用了一个简单的 if-else 语句来根据传入的参数创建不同类型的汽车对象。如果传入的参数不是 sedan 或 suv,我们会抛出一个异常。

最后,我们可以使用工厂类来创建汽车对象:

java
public class Main {
    public static void main(String[] args) {
        CarFactory carFactory = new CarFactory();

        Car sedanCar = carFactory.createCar(sedan);
        sedanCar.drive(); // Output: Driving a sedan car.

        Car suvCar = carFactory.createCar(suv);
        suvCar.drive(); // Output: Driving an SUV car.
    }
}


在上面的代码中,我们首先创建了一个 CarFactory 对象,然后使用它来创建 sedan 和 suv 两种类型的汽车对象。最后,我们调用了汽车对象的 drive() 方法来输出相应的信息。

通过使用工厂模式,我们可以将对象的创建逻辑封装在工厂类中,使得代码更加灵活和可维护。如果我们需要添加新的汽车类型,只需要修改工厂类的代码,而不需要修改其他地方的代码。这样,我们可以避免代码的重复和耦合,提高代码的可扩展性和可维护性。

其他信息

其他资源

Top