内容由B站UP主动力节点产出,本文仅作为学习笔记。
工厂方法模式
定义:定义一个接口或者抽象类,让它实现类(工厂)来决定创建哪一个实例对象,根据每个工厂不同的方法,产生不同的所需对象。
本质上是在简单工厂的基础上对工厂进行抽象处理,拓展了工厂的选择
回顾简单工厂模式:
public abstract class Course{
public abstract void make();
}
public class JavaCourse extends Course{
@Override
public void make(){
System.out.println("生成Java课程");
}
}
public class PythonCourse extends Course{
@Override
public void make(){
System.out.println("生成Python课程");
}
}
public class CourseFactory{
public Course getCourse(String course){
if ("java".equalsIgnoreCase(course)) {
return new JavaCourse;
}
if ("python".equalsIgnoreCase(course)) {
return new PythonCourse;
}
return null;
}
}
在此基础上,将工厂类设为接口或者抽象类,即为工厂方法模式:
public abstract class CourseFactory{
public abstract Course getCorse(String course);
}
public class JavaCourseFactory extends CourseFactory{
@Override
public Course getCourse(String course){
if ("java".equalsIgnoreCase(course)) {
return new JavaCourse;
}
return null;
}
}
public class PythonCourseFactory extends CourseFactory{
@Override
public Course getCourse(String course){
if ("python".equalsIgnoreCase(course)) {
return new PythonCourse;
}
return null;
}
}