首先创建一个工厂类,工厂类主要作用是为了生产具体的实例。
以汽车工厂为例
首先创建一个汽车的抽象类,并定义类所拥有的方法,比如run
// 可以是抽象类或者是接口
public abstract class Car {
abstract void run();
}
然后创建类的具体实例
1.audi类
public class Audi extends Car {
@Override
void run() {
// 重写run方法,具体为自己的实现
System.out.println("Audi is running...");
}
2.benz类
public class Benz extends Car {
@Override
void run() {
System.out.println("benz is running...");
}
}
接下来创建汽车工厂,根据不同的条件,生产不同的汽车
public class CarFactory {
// 可以通过方法传参来创建不同的实例,也可以通过设置name属性,然后通过构造方法或者setter来传递参数
public Car produce(String name) {
if (name.equals("benz")) {
return new Benz();
} else {
return new Audi();
}
}
}
测试
public class Main {
public static void main(String[] args) {
// 创建汽车工厂
CarFactory carFactory = new CarFactory();
// 调用工厂的produce方法,传递不同的汽车名称,生产不同汽车
Car audi = carFactory.produce("audi");
audi.run();
Car benz = carFactory.produce("benz");
benz.run();
}
}
执行结果
总结,工作中的因为太多的if else 判断,来创建不同的对象,然后不同的对象,会调用不同的方法,为了代码更简洁,同时也为了代码的解耦合,使用了工厂模式来省去大段的条件判断。