您的位置:首页 > 编程语言 > Java开发

java设计模式---Factory Method Pattern---工厂方法模式

2011-09-07 13:33 639 查看
Factory Method 工厂方法---建立对象实例交给子类

Template Method Pattern是在父类建立处理逻辑的大纲骨架,而在子类补充具体的处理内容。把这个Pattern应用在生产对象实例方面,就是Factory Methond Pattern.

程序示例



Product类和Factory类属于framework包。这两个类负责建立产生对象实例大纲(框架)的功能。

IDCard类和IDCardFactory类则处理实际的内容,属于idcoard包的一部分。

Main类是测试用类。

//Product类

//product类
public abstract class Product
{
public abstract void use();
}
//Factory类

public abstract class Factory
{
public final Product create(String string)
{
Product p = createProduct(owner);
registerProduct(p);
return p;
}
protected abstract Product createProduct(String owner);
protected abstract void registerProduct(Product product);
}
//IDCard类

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类

public class IDCardFactory extends Factory
{
private Vector owners = new Vector();
protected Product createProduct(String owner)
{
return new IDCard(owner);
}
protected void registerProduct(Product product)
{
owners.add(((IDCard)product).getOwner());
}
public Vector getOwners()
{
return owners;
}
}
//Main类

public class Main
{
public static void main(String[] args)
{
Factory factory = new IDCardFactory();
Product card1 = factory.create("changbin");
Product card2 = factory.create("daniel");
card1.use();
card2.use();
}
}


本Pattern用到了Template Method Pattern

用处:框架与内容

如果想利用同一个框架建立不同的产品和工厂,这是完全不用修改Factory和Product,而只要建立**Factory以及**Procut就可以了。

在实际过程中,设计师应把设计模式完整的告诉给后期维护人员,否则经过维护可能与初衷渐行渐远。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: