您的位置:首页 > 其它

二十三种设计模式之创建型模式之工厂方法

2015-09-05 21:37 465 查看

工厂方法

概述

定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。


适用性

1.当一个类不知道它所必须创建的对象的类的时候。

2.当一个类希望由它的子类来指定它所创建的对象的时候。

3.当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。

参与者

1.product

定义工厂方法所创建的对象的接口。

2.ConcreteProduct

实现Product接口。

3.Creator

声明工厂方法,该方法返回一个Product类型的对象。

可以调用工厂方法以创建一个Product对象。

4.ConcreteCreator

重定义工厂方法以返回一个ConcreteProduct实例。

类图



例子

Product

public interface Work {

void doWork();
}


ConcreteProduct

public class StudentWork implements Work {

public void doWork() {
System.out.println("学生做作业!");
}

}


public class TeacherWork implements Work {

public void doWork() {
System.out.println("老师审批作业!");
}

}


Creator

public interface IWorkFactory {

Work getWork();
}


ConcreteCreator

public class StudentWorkFactory implements IWorkFactory {

public Work getWork() {
return new StudentWork();
}

}


public class TeacherWorkFactory implements IWorkFactory {

public Work getWork() {
return new TeacherWork();
}

}


Test

public class Test {

public static void main(String[] args) {
IWorkFactory studentWorkFactory = new StudentWorkFactory();
studentWorkFactory.getWork().doWork();

IWorkFactory teacherWorkFactory = new TeacherWorkFactory();
teacherWorkFactory.getWork().doWork();
}

}


result

学生做作业!
老师审批作业!


Copyright © 2008 Angus Young

疯狂Java联盟:http://www.crazyit.org
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计模式 对象 实例