package com.btp.t2; /* * 工厂方法的设计模式 * 概述:定义一个用于创建对象的接口,让子类决定实例化哪一个类。使一个类的实例化延迟到其子类。 * * 适用性:1.当一个类不知道他所必须创建的对象的类的时候 * 2.当一个类希望由它的子类来指定它所创建的对象的时候 * 3.当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将那一个帮助子类是 * 代理者这一信息局部化的时候 */ public class TestFactoryMethod { public static void main(String[] args) { IWorkFactory i=new StudentWorkFactory(); i.getWork().doWork(); IWorkFactory i1=new TeacherWorkFactory(); i1.getWork().doWork(); } } interface IWorkFactory{//用于创建对象的接口 Work getWork(); } //由StudentWorkFactory和TeacherWorkFactory来决定实例化哪一个类 class StudentWorkFactory implements IWorkFactory{ @Override public Work getWork() { // TODO 自动生成的方法存根 return new StudentWork(); } } class TeacherWorkFactory implements IWorkFactory{ @Override public Work getWork() { // TODO 自动生成的方法存根 return new TeacherWork(); } } interface Work { void doWork(); } class StudentWork implements Work { @Override public void doWork() { // TODO 自动生成的方法存根 System.out.println("学生写作业"); } } class TeacherWork implements Work { @Override public void doWork() { // TODO 自动生成的方法存根 System.out.println("老师批改作业"); } }