简单工厂模式
简单工厂模式(Simple Factory Pattern)是指由一个工厂对象决定创建出哪一种产品类的实例,但它不属于GOF 23种设计模式。简单工厂适用于工厂类负责创建的对象较少的场景,且客户端只需要传入工厂类的参数,对于如何创建对象的逻辑不需要关心。
简单工厂也有它的缺点,工厂类的职责相对过重,不易于扩展过于复杂的产品结构。
接口类
public interface ICourse {
void study();
}
实现类
public class JavaCourse implements ICourse {
public void study() {
System.out.println("学习java");
}
}
public class PhythonCourse implements ICourse {
public void study() {
System.out.println("学习Phython");
}
}
简单工厂
public class CourseFactory {
// 利用泛型,来控制工厂创建 指定的类型,由工厂完成具体类的对象创建
public ICourse create(Class<? extends ICourse> clazz) {
if (clazz != null) {
try {
return clazz.newInstance();// 反射机制取得实例对象
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return null;
}
}
测试类
public class Test {
public static void main(String[] args) {
//简单工厂,通过传入类 的参数完成 对象的创建,客户端不需要关系工厂的实现
ICourse course = new CourseFactory().create(JavaCourse.class);
course.study();
}
}