3设计模式之工厂模式

7次阅读

共计 974 个字符,预计需要花费 3 分钟才能阅读完成。

1、工厂方法定义

定义一个创建对象的接口, 但让实现这个接口的类来决定实例化哪个类, 工厂方法让类的实例化推迟到子类中进行。适用场景:
1) 创建对象需要大量重复的代码
2) 客户端 (应用层) 不依赖于产品类实例如何被创建、实现等细节
3) 一个类通过其子类来指定创建哪个对象

优点:
1) 用户只需要关心所需产品对应的工厂, 无须关心创建细节
2) 加入新产品符合开闭原则, 提高可扩展性

缺点:
1) 类的个数容易过多, 增加复杂度
2) 增加了系统的抽象性和理解难度

2、代码演示

public abstract class Video {public abstract void produce();
}

public class PythonVideo extends Video {
    @Override
    public void produce() {System.out.println("录制 Python 课程视频");
    }
}

public class JavaVideo extends Video {
    @Override
    public void produce() {System.out.println("录制 Java 课程视频");
    }
}
public abstract class VideoFactory {public abstract Video getVideo();
}

public class PythonVideoFactory extends VideoFactory {
    @Override
    public Video getVideo() {return new PythonVideo();
    }
}

public class JavaVideoFactory extends VideoFactory {
    @Override
    public Video getVideo() {return new JavaVideo();
    }
}
public class Test {public static void main(String[] args) {VideoFactory videoFactory = new PythonVideoFactory();
        Video video = videoFactory.getVideo();
        video.produce();

        videoFactory = new JavaVideoFactory();
        video = videoFactory.getVideo();
        video.produce();}
}

正文完
 0