工厂模式的应用一-汽车制造汽车是一个大的分类,有新能源汽车、燃油汽车,不同的汽车有不同的型号 新能源汽车基础版极狐,进阶版阿尔塔.燃油汽车基础版本大众,进阶版宝马 用分别使用不同的工厂模式(简单工厂、工厂方法、抽象工厂)里构汽车制造业务。 1
时间: 2024-11-05 15:31:46 浏览: 1
工厂模式是一种设计模式,它提供了一种创建对象的最佳方式而不必暴露其内部细节。在汽车制造的例子中:
1. **简单工厂模式**:你可以创建一个简单的工厂类,比如"CarFactory",该类有一个方法createCar(),接收一个字符串参数,表示汽车类型(如"新能源"或"燃油")。根据输入的不同,返回相应的汽车对象,如"BaseHufox"(极狐基础版)或"AdvancedAlta"(阿尔塔进阶版)。
```java
class CarFactory {
public static Car createCar(String type) {
if (type.equals("新能源")) {
return new BaseHufox();
} else {
return new BaseVolkswagen();
}
}
}
// 使用示例
Car myCar = CarFactory.createCar("新能源");
```
2. **工厂方法模式**:在这个场景下,可以定义一个抽象工厂类"CarFactoryInterface",然后新能源车系列和燃油车系列各自有个子类,如"ElectricCarFactory"和"FossilCarFactory"。每个子类都负责生产特定类型的汽车。
```java
interface CarFactoryInterface {
Car createCar();
}
class ElectricCarFactory implements CarFactoryInterface {
@Override
public Car createCar() {
return new BaseHufox();
}
}
class FossilCarFactory implements CarFactoryInterface {
@Override
public Car createCar() {
return new BaseVolkswagen();
}
}
// 使用示例
CarFactoryInterface factory = type == "新能源" ? new ElectricCarFactory() : new FossilCarFactory();
Car myCar = factory.createCar();
```
3. **抽象工厂模式**:当需要创建一系列相关的对象,而这一系列的对象需要共同遵守一个接口时,可以使用抽象工厂。例如,你可以定义一个"AutoFactory"接口,包含新能源车和燃油车工厂。
```java
interface AutoFactory {
BatteryCar createBatteryCar();
PetrolCar createPetrolCar();
}
abstract class AbstractAutoFactory implements AutoFactory {
// 具体实现...
}
class ElectricAutoFactory extends AbstractAutoFactory {
@Override
public BatteryCar createBatteryCar() {
return new BaseHufox();
}
// ...其他方法
}
class FuelAutoFactory extends AbstractAutoFactory {
@Override
public PetrolCar createPetrolCar() {
return new BaseVolkswagen();
}
// ...其他方法
}
// 使用示例
AutoFactory factory = type == "新能源" ? new ElectricAutoFactory() : new FuelAutoFactory();
BatteryCar myCar = factory.createBatteryCar();
```
阅读全文