设计模式-工厂方法模式
-
定义
工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。 -
代码实例
abstract class AbstractPersonFactory { private Person person; // 工厂方法,在具体子类实现 abstract public Person createPerson(); public void boo() { // 具体类型由工厂方法指定 person = createPerson(); person.foo(); } } /** * 工厂子类 */ class StudentFactory extends AbstractPersonFactory { // 决定创建的对象 @Override public Person createPerson() { return new Student(); } // 测试 public static void main(String[] args) { StudentFactory studentFactory = new StudentFactory(); studentFactory.boo(); } } class Person { public void foo() { System.out.println("I am a person"); } } class Teacher extends Person { @Override public void foo() { System.out.println("I am a teacher"); } } class Student extends Person { @Override public void foo() { System.out.println("I am a student"); } }