简介

工厂方法模式是简单工厂模式的延伸,它继承了简单工厂模式的优点,同时还弥补了简单工厂模式的缺陷,更好地符合开闭原则的要求,在增加新的具体产品对象时不需要对已有的系统做任何修改。

  • 缺点

类的数量过多,增加复杂度

coding

  1. package com.yulang.design_pattern_23.factory_method;
  2. public abstract class VideoFactory {
  3. public abstract Video build();
  4. }
  1. package com.yulang.design_pattern_23.factory_method;
  2. public class PythonFactory extends VideoFactory {
  3. @Override
  4. public Video build() {
  5. return new PythonVideo();
  6. }
  7. }
  1. package com.yulang.design_pattern_23.factory_method;
  2. public class JavaVideoFactory extends VideoFactory {
  3. @Override
  4. public Video build() {
  5. return new JavaVideo();
  6. }
  7. }
  1. package com.yulang.design_pattern_23.factory_method;
  2. public class PythonVideo extends Video {
  3. @Override
  4. public void produce() {
  5. System.out.println("python");
  6. }
  7. }
  1. package com.yulang.design_pattern_23.factory_method;
  2. public class JavaVideo extends Video {
  3. @Override
  4. public void produce() {
  5. System.out.println("java");
  6. }
  7. }
  1. package com.yulang.design_pattern_23.factory_method;
  2. public abstract class Video {
  3. public abstract void produce();
  4. }
  1. package com.yulang.design_pattern_23.factory_method;
  2. public class Test {
  3. public static void main(String[] args) {
  4. VideoFactory videoFactory = new PythonFactory();
  5. videoFactory.build().produce();
  6. }
  7. }

image.png