Cpper
C/C++高级工程师 Android高级软件工程师 IT集成工程师 音频工程师 熟悉c,c++,java,c#,py,js,asp等多种语言 程序猿
接上文:设计模式-简单工厂 http://www.cppblog.com/gaimor/archive/2011/05/02/145498.html
简单工厂是根据传入要求决定生产那类产品,其工厂只有一个
在简单工厂基础之上,如果一个工厂对应一个产品则形成了工厂方法
interface Product
{
    
public void Call();
};

public class Product1 implements Product
{
    
public void Call()
    {}
};

public class Product2 implements Product
{
    
public void Call()
    {}
};

interface ProductFactory
{
    
public Product GetProduct();
};

public class ProductFactory1 implements ProductFactory
{
    
public Product GetProduct()
    {
        
return new Product1();
    }
}

public class ProductFactory2 implements ProductFactory
{
    
public Product GetProduct()
    {
        
return new Product2();
    }
}

这样使用
ProductFactory factory1 
= new ProductFactory1();

Product p1 
= factory1.GetProduct();
ProductFactory factory2 
= new ProductFactory2();

Product p2 
= factory2.GetProduct();


可以看出工厂方法中工厂和产品总是一一对应的
一个工厂只能生产一个产品
很显然工厂方法最大的弊端就在这里.

使用的场合:一个对象希望由子对象来指定它所创建的对象时,可以使用工厂方法

PS:系统那个总结下设计模式
posted on 2011-05-05 22:27 ccsdu2009 阅读(1550) 评论(0)  编辑 收藏 引用 所属分类: 设计模式Java Antroid

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理