设计模式:简单工厂模式与工厂生产模式的区别
程序员文章站
2024-01-19 20:11:28
...
参考:蚂蚁课堂
先实战再总结,基于车的两个品牌:奥迪和奔驰 实现工厂模式和简单工厂
简单工厂
1. 都属于汽车,创建汽车接口
public interface Car{
// 都能跑
public void run();
}
2. 奥迪实现Car接口
public class AoDi implements Car {
@Override
public void run() {
System.out.println("我是奥迪汽车...");
}
}
3. 奔驰实现Car接口
public class BenChi implements Car {
@Override
public void run() {
System.out.println("我是奔驰汽车...");
}
}
4. 汽车工厂(通过判断哪个品牌,就造哪个品牌的车)
public class CarFactory {
static public Car createCar(String carType) {
Car car = null;
switch (carType) {
case "奥迪":
car = new AoDi();
break;
case "奔驰":
car = new BenChi();
break;
default:
break;
}
return car;
}
}
5. main方法调用工厂造车
public static void main(String[] args) {
Car car1 = CarFactory.createCar("奥迪");
Car car2 = CarFactory.createCar("奔驰");
car1.run();
car2.run();
}
工厂方法
前三步都不变,创建具体类实现Car接口
4. 创建奥迪工厂
public class AoDiFactory {
static public Car create() {
return new AoDi();
}
}
5. 创建奔驰工厂
public class BenChiFactory {
static public Car create() {
return new BenChi();
}
}
6. main方法调用各自的工厂创建
public static void main(String[] args) {
Car aodi = AoDiFactory.create();
Car benchi = BenChiFactory.create();
aodi.run();
benchi.run();
}
PS:工厂设计模式也可以写一个工厂接口,不同工厂调用
总结
简单工厂模式:只有一个工厂,对每个需求判断,不同需求有不同调用
工厂设计模式:有多个工厂,调用不同工厂创建不同实例
(PS:工厂设计模式也可以声明一个公共的工厂接口,不同工厂实现这个接口,更方便区分功能)
上一篇: 设计模式-简单工厂
下一篇: 后端开发者的Vue学习之路(四)