简单工厂——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的主要内容,如果未能解决你的问题,请参考以下文章

浅谈简单工厂,工厂方法,抽象工厂的使用

设计模式-简单工厂Coding+jdk源码解析

工厂设计模式

大话涉及模式Python实现-简单工厂模式

设计模式课程 设计模式精讲 4-3 简单工厂源码解析

简单工厂模式+工厂方法模式+抽象工厂模式