简单工厂——coding
Posted thiaoqueen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单工厂——coding相关的知识,希望对你有一定的参考价值。
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 class VideoFactory // 反射实现 public Video getVideo(Class c) Video video = null; try video = (Video) Class.forName(c.getName()).newInstance(); catch (InstantiationException e) e.printStackTrace(); catch (IllegalAccessException e) e.printStackTrace(); catch (ClassNotFoundException e) e.printStackTrace(); return video; // 基础实现 public Video getVideo(String type) if("java".equalsIgnoreCase(type)) return new JavaVideo(); else if("python".equalsIgnoreCase(type)) return new PythonVideo(); return null;
public class Test public static void main(String[] args)
// 方式一: // VideoFactory videoFactory = new VideoFactory(); // Video video = videoFactory.getVideo("java"); // if(video == null) // return; // // video.produce();
// 方式二: VideoFactory videoFactory = new VideoFactory(); Video video = videoFactory.getVideo(JavaVideo.class); if(video == null) return; video.produce();
以上是关于简单工厂——coding的主要内容,如果未能解决你的问题,请参考以下文章