只是给自己做一个学习笔记,便于回顾!
http://blog.csdn.net/chmask/article/details/2631485
感觉我只是贴自己的代码而已!
工厂方法模式(Factory Method) 将程序中创建对象的操作,单独出来处理,创建一个产品的工厂接口,把实际的工作转移到具体的子类。大大提高了系统扩展的柔性,接口的抽象化处理给相互依赖的对象创建提供了最好的抽象模式。
抽象工厂接口CreateFactory.java:
package silence.pattern.creational.FactoryMethod;
public interface CreateFactory {
public People getPeople();
}
具体工厂角色:StudentCreateFactory和TeacherCreateFactory
package silence.pattern.creational.FactoryMethod;
public class StudentCreateFactory implements CreateFactory {
@Override
public People getPeople() {
// TODO Auto-generated method stub
return new Student();
}
抽象产品角色:People.javapackage silence.pattern.creational.FactoryMethod; public class TeacherCreateFactory implements CreateFactory { @Override public People getPeople() { // TODO Auto-generated method stub return new Teacher(); } }
具体产品角色:Student 和 Teacherpackage silence.pattern.creational.FactoryMethod; public interface People { public void doWork(); }
package silence.pattern.creational.FactoryMethod; public class Student implements People { public void doWork() { // TODO Auto-generated method stub System.out.println("Student do work!"); } }
测试main函数:package silence.pattern.creational.FactoryMethod; public class Teacher implements People{ @Override public void doWork() { System.out.println("Teacher do work!"); } }
package silence.pattern.creational.FactoryMethod; public class Main { public static void main(String[] args){ CreateFactory cf = new StudentCreateFactory(); cf.getPeople().doWork(); CreateFactory ct = new TeacherCreateFactory(); ct.getPeople().doWork(); } }