- 定义
工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。 代码实例
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"); } }
来源:https://www.cnblogs.com/bosslv/p/11361955.html