工厂模式属于创建型模式,如果需要大量的创建实现同一个接口或者类的对象时,可以使用。
简单看下图例:

-
-
-
-
public interface Worker {
-
public void work();
-
}
-
-
-
-
public class Doctor implements Worker {
-
@Override
-
public void work() {
-
System.out.println("医生开始上班了");
-
}
-
}
-
-
-
-
public class Student implements Worker {
-
@Override
-
public void work() {
-
System.out.println("学生开始上课了");
-
}
-
}
-
-
-
-
public class Teacher implements Worker {
-
@Override
-
public void work() {
-
System.out.println("教师开始教学了");
-
}
-
}
-
public class Headmaster extends Teacher{
-
public void work(){
-
System.out.print("校长开始上班了");
-
}
-
}
-
-
-
-
public class WorkFactory {
-
public void work(Worker worker){
-
worker.work();
-
}
-
-
-
-
public Worker StudentWork(){
-
return new Student();
-
}
-
public Worker TeacherWork(){
-
return new Teacher();
-
}
-
public Worker DoctorWork(){
-
return new Doctor();
-
}
-
public Worker HeadmasterWork(){
-
return new Headmaster();
-
}
-
-
-
-
public static Worker StudentWork1(){
-
return new Student();
-
}
-
public static Worker TeacherWork1(){
-
return new Teacher();
-
}
-
public static Worker DoctorWork1(){
-
return new Doctor();
-
}
-
public static Worker HeadmasterWork1(){
-
return new Headmaster();
-
}
-
}
-
-
-
-
public class Test {
-
public static void main(String[] args){
-
WorkFactory factory = new WorkFactory();
-
factory.work(new Doctor());
-
factory.work(new Teacher());
-
factory.work(new Student());
-
factory.work(new Headmaster());
-
-
factory.DoctorWork().work();
-
factory.TeacherWork().work();
-
factory.StudentWork().work();
-
factory.HeadmasterWork().work();
-
-
WorkFactory.DoctorWork1().work();
-
WorkFactory.TeacherWork1().work();
-
WorkFactory.StudentWork1().work();
-
WorkFactory.HeadmasterWork1().work();
-
}
-
}
-
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29876893/viewspace-2140451/
,如需转载,请注明出处,否则将追究法律责任。