package zhang.javase.TestFactory;
/**
- 工厂方法的设计模式
- @作者:小章鱼
*通过接口可以实现不相关类之间的相同行为,而不需要考虑这些类的层次关系
*通过接口可以指明多个类与要实现的方法,一般可以用定义的对象扩张功能
*接口主要来定义规范,解除耦合关系
*/
public class Testfactory {
public static void main(String[] args) {
WorkFactory w=new StudentFactory();
w.getWork().doWork();
WorkFactory w2=new TeacherFactory();
w2.getWork().doWork();
}
}
class StudentFactory implements WorkFactory{
@Override
public Work getWork() {
return new StudentWork();
}
}
class TeacherFactory implements WorkFactory{
@Override
public Work getWork() {
return new TeacherWork();
}
}
interface WorkFactory{
Work getWork();
}
interface Work{
void doWork();
}
class StudentWork implements Work{
@Override
public void doWork() {
System.out.println(“student do homework”);
}
}
class TeacherWork implements Work{
@Override
public void doWork() {
System.out.println(" teacher do work");
}
}