当前位置:编程学习 > JAVA >>

设计模型系列-简单工厂

设计模型系列-简单工厂这段时间在学习Android,也要学点jav方面的编程知识
乘着这个机会,俺就总结下学过和使用过的设计模式,并使用java写下

先说简单工厂
简单工厂属于工厂模式的一种,不过似乎不在GOF模式之列.
一句话描述:简单工厂就是根据给定要求生成给定对象
简单的java版本代码如下:
public inte易做图ce Product
{
    abstract public void Call();
};

public Pen implements Product
{
    public void Call()
    {
       
    }
};

public Book implements Product
{
    public void Call()
    {
       
    }
};


public clas Factory
{
    public Product CreateProducrt(String name)
    {
        if(name.equals("Pen"))
            return Pen.class.newInstance();
        else if(name.equals("Book"))
            return Book.class.newInstance();
        return null;
    }
};

 


简单工厂就是根据输入标签返回给定的对象实例

很显然,简单工厂的主要缺陷就在于:如果需要增加一个新的产品那就需要修改其产品生成函数

另外,如果把工厂和产品对象合二为一就变成了如下的形式:
public class Object
{
    public static ObjectCreateObject(String name);
    other function.
};这类似于MFC中CObject

简单工厂的一个使用例子如下(之前我写的GUI):
class WidgetFactory
{
public:
    Widget* CreateWidgetByName(const std::string& name);     
};在这里如果传入Spin则返回一个new Spin,传入一个Slider则返回一个new Slider对象
如果我增加一个新的Widget对象,则需要把CreateWidgetByName函数修改下(当然可以使用Object::CreateObject(name)函数,只是返回的对象需要做类型转换,原则一致)

下篇说说抽象工厂和工厂方法吧

补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,