1. 对比

对比简单工厂模式,修复了添加产品要修改工厂的问题

2. 具体实现

每个车都有一个工厂,要添加车就可以直接添加一个该车的工厂

  1. public class BaoMa implements Car {
  2. @Override
  3. public void say() {
  4. System.out.println("BaMa");
  5. }
  6. }
  7. public class BaoMaFactory implements CarFactory {
  8. @Override
  9. public Car getCar() {
  10. return new BaoMa();
  11. }
  12. }
  13. public class TSL implements Car {
  14. @Override
  15. public void say() {
  16. System.out.println("我是TSL");
  17. }
  18. }
  19. public class TSLFactory implements CarFactory{
  20. @Override
  21. public Car getCar() {
  22. return new TSL();
  23. }
  24. }
  25. public interface CarFactory {
  26. Car getCar();
  27. }
  28. public class GetCar {
  29. public static void main(String[] args) {
  30. BaoMaFactory baoMaFactory = new BaoMaFactory();
  31. Car car = baoMaFactory.getCar();
  32. car.say();
  33. //BaMa
  34. }
  35. }

可以看到用户需要什么车就直接创造什么工厂,不需要再修改工厂方法。