工厂模式是一种用来创建对象的模式,它将对象的创建和使用分离开来,使得代码更加灵活和可扩展。
下面代码中CarFactory是一个工厂类,它根据传入的参数来创建不同类型的Car对象。通过工厂模式,在不改变客户端代码的情况下轻松地添加新的品牌汽车。
/**
* 创建型模式--工厂模式
* 工厂模式是一种用来创建对象的模式,它将对象的创建和使用分离开来,使得代码更加灵活和可扩展
*
* 使用工厂模式来创建汽车
*/
public class FactoryMode {
// 抽象产品类
abstract static class Car {
public abstract void drive();
}
// 具体产品类
static class BenzCar extends Car {
@Override
public void drive() {
System.out.println("Drive Benz Car");
}
}
static class BmwCar extends Car {
@Override
public void drive() {
System.out.println("Drive Bmw Car");
}
}
// 工厂类
// CarFactory是一个工厂类,它根据传入的参数来创建不同类型的Car对象。通过工厂模式,在不改变客户端代码的情况下轻松地添加新的品牌汽车。
static class CarFactory {
public static Car createCar(String type) {
if ("Benz".equalsIgnoreCase(type)) {
return new BenzCar();
} else if ("Bmw".equalsIgnoreCase(type)) {
return new BmwCar();
} else {
throw new IllegalArgumentException("Invalid car type");
}
}
}
// 使用工厂模式创建汽车
public static void main(String[] args) {
Car benzCar = CarFactory.createCar("Benz");
Car bmwCar = CarFactory.createCar("Bmw");
benzCar.drive();
bmwCar.drive();
}
}