Fork me on GitHub

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

案例场景

某泡教育推出架构师培训课程,包括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();

    }
}

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

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

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

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

posted @ 2021-07-02 11:17  薄荷加冰2060  阅读(67)  评论(0编辑  收藏  举报