接上文:設(shè)計(jì)模式
-簡(jiǎn)單工廠 http://www.shnenglu.com/gaimor/archive/2011/05/02/145498.html 簡(jiǎn)單工廠是根據(jù)傳入要求決定生產(chǎn)那類(lèi)產(chǎn)品,其工廠只有一個(gè)
在簡(jiǎn)單工廠基礎(chǔ)之上,如果一個(gè)工廠對(duì)應(yīng)一個(gè)產(chǎn)品則形成了工廠方法
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();
可以看出工廠方法中工廠和產(chǎn)品總是一一對(duì)應(yīng)的
一個(gè)工廠只能生產(chǎn)一個(gè)產(chǎn)品
很顯然工廠方法最大的弊端就在這里.
使用的場(chǎng)合:
一個(gè)對(duì)象希望由子對(duì)象來(lái)指定它所創(chuàng)建的對(duì)象時(shí),可以使用工廠方法PS:系統(tǒng)那個(gè)總結(jié)下設(shè)計(jì)模式