0
第一件事......我是新手模式的世界,所以糾正我,如果不對任何地方 場景: 有多家公司提供差異大小的多個產品抽象工廠模式是否針對特定場景正確實施....?
所以有3個實體,即公司,他們的產品和大小產品
的我對這個即實現抽象圖案,讓我 IProductFactory界面的創建,從而獲得所需的產品實例...
下面是實施抽象工廠模式的正確???如果沒有,那麼請糾正方法 + 還告訴我,如果任何其他的模式可以用於這種情況下提前 謝謝...
public enum Companies
{
Samsung = 0,
LG = 1,
Philips = 2,
Sony = 3
}
public enum Product
{
PlasmaTv = 0,
DVD = 1
}
public enum ProductSize
{
FortyTwoInch,
FiftyFiveInch
}
interface IProductFactory
{
IPhilips GetPhilipsProduct();
ISony GetSonyProduct();
}
interface ISony
{
string CreateProducts(Product product, ProductSize size);
}
interface IPhilips
{
string CreateProducts(Product product, ProductSize size);
}
class ProductFactory : IProductFactory
{
public IPhilips GetPhilipsProduct()
{
return new Philips();
}
public ISony GetSonyProduct()
{
return new Sony();
}
}
class Philips : IPhilips
{
#region IPhilips Members
public string CreateProducts(Product product, ProductSize size)
{// I have ingnore size for now....
string output = string.Empty;
if (product == Product.PlasmaTv)
{
output = "Plasma TV Created !!!";
}
else if (product == Product.DVD)
{
output = "DVD Created !!!";
}
return output;
}
#endregion
}
class Sony : ISony
{// I have ingnore size for now....
#region ISony Members
public string CreateProducts(Product product, ProductSize size)
{
string output = string.Empty;
if (product == Product.PlasmaTv)
{
output = "Plasma TV Created !!!";
}
else if (product == Product.DVD)
{
output = "DVD Created !!!";
}
return output;
}
#endregion
}
IProductFactory prodFactory = new ProductFactory();
IPhilips philipsObj = prodFactory.GetPhilipsProduct();
MessageBox.Show(philipsObj.CreateProducts(Product.DVD, ProductSize.FortyTwoInch));
or
//ISony sonyObj = prodFactory.GetSonyProduct();
//MessageBox.Show(sonyObj.CreateProducts(Product.DVD, ProductSize.FortyTwoInch));
老實說..我不確定如何爲loadProductFactory()提供定義。 ....你能否提供一些關於這些請求的更多想法? – Amit 2010-06-01 13:46:04
@Amit,看我的更新。 – 2010-06-01 13:59:04
非常感謝:-) – Amit 2010-06-01 14:18:43