工厂模式,我们可以通过调用不同的工厂类来创建不同类型的汽车对象,而不需要直接实例化具体的汽车类。这样就实现了对象的解耦和灵活性。 最常见的例子之一是创建不同类型的汽车。假设有几种类型的汽车,如轿车、SUV,它们都继承自一个共同的抽象汽车类。我们可以使用工厂模式来创建这些汽车对象。 1.定义一个抽象汽车类Car 包含抽象方法drive
public abstract class Car {
//一个抽象方法
public abstract void drive();
}
2.创建两个具体的汽车实现类
public class SUVCar extends Car {
@Override
public void drive() {
System.out.println("SUVCar is driving......");
}
}
public class JaoCheCar extends Car {
@Override
public void drive() {
System.out.println("JaoCheCar is driving......");
}
}
3.定义一个抽象的工厂类,用于创建汽车
public abstract class CarFactory {
public abstract Car creatcar();
}
4.创建具体的工厂实现类,利用工厂来创建汽车
public class SUVCarFactory extends CarFactory{
@Override
public Car creatcar() {
return new SUVCar();
}
}
public class JaoCheCarFactory extends CarFactory{
@Override
public Car creatcar() {
return new JaoCheCar();
}
}
5.最后,我们可以使用这些工厂类来创建具体的汽车对象,而不需要直接使用new
public static void main(String[] args) {
SUVCarFactory suvCarFactory = new SUVCarFactory();
Car suvcar = suvCarFactory.creatcar();
suvcar.drive();
JaoCheCarFactory jaoCheCarFactory = new JaoCheCarFactory();
Car jiaochecar = jaoCheCarFactory.creatcar();
jiaochecar.drive();
}