2007-01-17
设计模式之工厂方法Factory Method
关键字: 建立对象实例交给子类上一节的模版方法是在父类建立处理逻辑的大纲骨架,而在子类补充具体的处理内容,如果把这个Pattern应用在产生对象实例方面,就是本节的学习重点,工厂模式。
这个程序示例主要是建立一个生产身份证的工厂。
| 程序包 | 名称 | 说明 |
| framework | Product | 仅定义抽象方法use的抽象类 |
| framework | Factory | 实现方法create的抽象类 |
| idcard | IDCard | 实现方法use的抽象类 |
| idcard | IDCardFactory | 实现方法createProduct,egisterProduct的类 |
| Main | 测试类 |
Product抽象类
- package framework;
- public abstract class Product {
- public abstract void use();
- }
- }
Factory 抽象类
- package framwork ;
- public abstract class Factory {
- public final Product create(String owner) {
- Product p = createProduct(owner);
- registerProduct(p);
- return p;
- }
- protected abstract Product createProduct(String owner);
- protected abstract void registerProduct(Product product);
- }
IDCard 子类
- package idcard;
- import framework.*;
- public class IDCard extends Product {
- private String owner;
- IDCard(String owner) {
- System.out.println("建立"+owner+"的卡。");
- this.owner = owner ;
- }
- public void use () {
- System.out.println("使用"+owner + " 的卡。");
- }
- public String getOwner() {
- return owner;
- }
- }
IDCardFactory 子类
- package idcard;
- import frameWork.*;
- import java.util.*;
- public class IDCardFactory extrends Factory {
- private Vector owners = new Vector();
- protected Product createrProduct (String owner) {
- return new IDCard(owner);
- }
- protected void registerProduct(Product product) {
- owners.add(((IDCard)product).getOwner());
- }
- public Vector getOwner() {
- return owners;
- }
- }
Main测试类
- import framwork.*;
- import idcard.*;
- public class Main {
- public static void main(String args[]) {
- Factory factory = new IDCardFactory();
- Product card1 = factory.create("qingzi2534");
- Product card2 = factory.create("javaeye");
- card1.use();
- card2.use();
- }
- }
- 浏览: 174663 次
- 性别:

- 来自: 烟台

- 详细资料
搜索本博客
我的相册
200804090708271400855637
共 39 张
共 39 张
最近加入圈子
最新评论
-
2007,年终总结
qingzi2534 写道08年一开始计划就完全没有执行,早上起不来,没有时间吃 ...
-- by 刑天战士 -
2007,年终总结
qingzi2534 写道08年一开始计划就完全没有执行,早上起不来,没有时间吃 ...
-- by weiqingfei -
2007,年终总结
08年一开始计划就完全没有执行,早上起不来,没有时间吃早餐,晚上连续熬夜到12点 ...
-- by qingzi2534 -
2007,年终总结
曾经早上8点干起然后干到转钟一直干了半年,最后身体几乎搞垮的人飘过。。。
-- by zhangfeiyu2005 -
2007,年终总结
qingzi2534 写道 每天都要在2点前睡觉 很好奇,到底是几点上班的 ...
-- by fqtrnt






评论排行榜