简单工厂模式(非23中设计模式之一)
简单工厂模式指由一个工厂对象决定创建哪一种产品类型的实例。只适用于工厂类负责创建的对象较少的场景,且客户端只需要传入工厂类的参数,对于如何创建对象不需要关心。
eg: 以创建课程为例,java课程,大数据,人工智能等课程。
定义一个课程标准ICourse接口
public interface ICourse {
/**
* 录制课程
*/
public void record();
}
创建课程
/**
* javaCourse的实现类
*/
public class JavaCourse implements ICourse {
@Override
public void record() {
System.out.println("录制java课程");
}
}
/**
* PythonCourse的实现类
*/
public class PythonCourse implements ICourse{
@Override
public void record() {
System.out.println("录制PythonCourse课程");
}
}
简单工厂类
/**
* 简单工厂
*/
public class CourseFactory {
/**
* 创建对象
* @param clazz
* @return
*/
public ICourse create(Class<? extends ICourse> clazz){
if(null !=clazz ){
try {
return clazz.newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return null;
}
}
test
/**
* 测试类
*/
public class TestFactory {
public static void main(String[] args) {
//创建工厂
CourseFactory courseFactory = new CourseFactory();
//根据参数创建对象
ICourse iCourse = courseFactory.create(JavaCourse.class);
iCourse.record();
}
}
结果:
load mybatis-log agent success.
录制java课程
Process finished with exit code 0