우선 ... 나는 패턴 세계에 초보자입니다, 그래서 저를 해결하는 경우 잘못된 어디서나 시나리오 : 는주어진 시나리오에서 추상 팩토리 패턴이 올바르게 구현 되었습니까?
그래서 3 개 단체가 기업, 즉있다 DIFF 크기의 여러 제품을 제공하는 여러 회사, 그들의 제품과 크기가있다
제품
의 나는 추상 팩토리 패턴의 구현보다 정확 ... 나는 제품을 원하는 얻을 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()에 대한 정의를 제공하는 방법으로 확신이 없습니다. .... 그 pls에 대해 좀 더 생각해 주시겠습니까? – Amit
@Amit, 내 업데이트를 참조하십시오. –
많은 감사 :-) – Amit