设计模式之简单工厂、工厂方法与抽象工厂

案例场景

某泡教育推出架构师培训课程,包括Java架构师、Python架构师培训。售卖课程内容包括视频、笔记、源码等。根据工厂方法等相关内容,实现售卖课程的程序设计。
要求程序运行结果如下:

简单工厂、工厂方法与抽象工厂定义与结构

案例-简单工厂设计与实现

public interface ICourse {
    /**
     * 录制视频
     * @return
     */
    void record();
}

public class JavaCourse implements ICourse {

    public void record() {
        System.out.println("录制Java课程");
    }
}

public class PythonCourse implements ICourse {

    public void record() {
        System.out.println("录制Python课程");
    }
}
public class CourseFactory {
    public ICourse create(Class<? extends ICourse> clazz){
        try {
            if (null != clazz) {
                return clazz.newInstance();
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }

}
public class SimpleFactoryTest {

    public static void main(String[] args) {
        CourseFactory factory = new CourseFactory();
        ICourse course = factory.create(JavaCourse.class);
        course.record();

    }
}

案例-工厂方法设计与实现

案例-抽象方法设计与实现

工厂方法由于抽象工厂区别

工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。
工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。

工厂设计模式在开源框架中的应用

参考

源代码

作者:薄荷加冰
出处:https://www.cnblogs.com/huangjianping/
版权:本文版权归作者和博客园共有
转载:本文以学习、研究和分享为主,欢迎转载和各类爬虫,但必须在文章页面明显位置给出原文链接。 如果文中有不妥或者错误的地方还望您指出,以免误人子弟。如果您有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。
原文地址:https://www.cnblogs.com/huangjianping/p/14962468.html