设计模式 - 工厂模式
发布人: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() 方法来输出相应的信息。
通过使用工厂模式,我们可以将对象的创建逻辑封装在工厂类中,使得代码更加灵活和可维护。如果我们需要添加新的汽车类型,只需要修改工厂类的代码,而不需要修改其他地方的代码。这样,我们可以避免代码的重复和耦合,提高代码的可扩展性和可维护性。

