简单工厂模式

作者: 谁家的猪 | 来源:发表于2019-07-05 07:59 被阅读1次

    什么是简单工厂模式

    简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。
    简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。

    该模式中包含的角色及其职责

    工厂(Creator)角色

    简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。

    抽象产品(Product)角色

    简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。

    具体产品(Concrete Product)角色

    是简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。

    项目结构

    结构.png

    代码

    1. 抽象类Video
    /**
     * @author lijiayin
     */
    public abstract class Video {
        
        public abstract void produce();
    }
    
    1. JavaVideo类
    /**
     * @author lijiayin
     */
    public class JavaVideo extends Video {
        @Override
        public void produce() {
            System.out.println("Java");
        }
    }
    
    1. PythonVideo类
    /**
     * @author lijiayin
     */
    public class PythonVideo extends Video {
        @Override
        public void produce() {
            System.out.println("Python");
        }
    }
    
    1. VideoFactory类
    /**
     * @author lijiayin
     */
    public class VideoFactory {
        public Video getVideo(String type){
            if("java".equalsIgnoreCase(type)){
                return new JavaVideo();
            }else if("python".equalsIgnoreCase(type)){
                return new PythonVideo();
            }
            return null;
        }
    }
    
    1. 测试类
    /**
     * @author lijiayin
     */
    public class Test {
        public static void main(String[] args) {
            VideoFactory videoFactory = new VideoFactory();
            Video video = videoFactory.getVideo("java");
            if(video == null){
                return;
            }
            video.produce();
        }
    }
    

    UML类图

    选择包查看类图


    类图.png

    相关文章

      网友评论

        本文标题:简单工厂模式

        本文链接:https://www.haomeiwen.com/subject/tlrrhctx.html