简单工厂模式
ICourse create(String courseName)
ICourse create(String className)
ICourse create(Class<? extends ICourse> clazz)
例子
LoggerFactory.getLogger(Class clazz)
Calendar.newInstance()
工厂方法模式
接口:class ICourseFactory{}
ICourse create()
实现类:class JavaCourseFactory implements ICourseFactory
缺点
类的个数过多,增加复杂度
增加系统的抽象性和理解难度
抽象工厂模式
接口:class ICourseFactory{}<br>
ICourse getCourse();
IVideo getVideo();
其实就是工厂方法的升级(一个抽象方法改为多个抽象方法)
缺点
拓展产品族时需要修改工厂方法,违反开闭原则
增加系统的抽象性和理解难度