工厂方法模式(创建型)
主要解决:主要解决接口选择的问题。
JAVA应用:java.util.Collection
java.net.URLStreamHandlerFactory
org.slf4j.ILoggerFactory
public abstract class Video { public abstract void produce(); }
public class JavaVideo extends Video { @Override public void produce() { System.out.println("录制Java课程视频"); } }
public class PythonVideo extends Video { @Override public void produce() { System.out.println("录制Python课程视频"); } }
public abstract class VideoFactory { public abstract Video getVideo(); }
public class JavaVideoFactory extends VideoFactory { @Override public Video getVideo() { return new JavaVideo(); } }
public class PythonVideoFactory extends VideoFactory { @Override public Video getVideo() { return new PythonVideo(); } }
public class Test { public static void main(String[] args) { VideoFactory videoFactory = new PythonVideoFactory(); VideoFactory videoFactory2 = new JavaVideoFactory(); Video video = videoFactory.getVideo(); video.produce(); } }