设计模式之简单工厂、工厂方法与抽象工厂
案例场景
某泡教育推出架构师培训课程,包括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();
}
}
案例-工厂方法设计与实现
案例-抽象方法设计与实现
工厂方法由于抽象工厂区别
工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。
工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。