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

来源:互联网 发布:阿里云 域名注册备案 编辑:程序博客网 时间:2024/05/16 09:38
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就可以了。
在实际过程中,设计师应把设计模式完整的告诉给后期维护人员,否则经过维护可能与初衷渐行渐远。



原创粉丝点击