我是设计模式的新手,这里有一个场景。我不知道如何实现这一模式。
。
我想要每个供应商的特定产品使用抽象工厂模式。
到目前为止,我的执行情况:
public enum TvType
{
Samsung = 0, LG = 1, Philips = 2, Sony = 3
}
public enum Product
{
Plasma = 0, NormalTV = 1
}返回每个产品的每个供应商的具体类以及包含ProductInfo的接口,也就是说,如果供应商是,那么它必须拥有这个产品。
发布于 2010-05-31 13:31:15
在伪码中,它可能是这样的:
interface TvFactory {
NormalTelevision createNormalTv();
PlasmaTelevision createPlasmaTv();
}
class PhilipsTvFactory implements TvFactory {
public NormalTelevision createNormalTv() {
return new PhilipsNormalTelevision();
}
public PlasmaTelevision createPlasmaTv() {
return new PhilipsPlasmaTelevision();
}
}
class OnidaTvFactory implements TvFactory {
public NormalTelevision createNormalTv() {
return new OnidaNormalTelevision();
}
public PlasmaTelevision createPlasmaTv() {
return new OnidaPlasmaTelevision();
}
}
// similarly for other vendors...
...
// decides - maybe based on config - which factory to use
TvFactory factory = loadTvFactory();
Television myTv = factory.createPlasmaTv();发布于 2010-05-31 13:32:17
恩纳姆是邪恶的。将它们替换为接口:
public interface IVendor { /*...*/ }然后,您可以为每个供应商提供IVender的具体实现。
public class Samsung : IVendor { /*...*/ }
public class Philips : IVendor { /*...*/ }
public class Sony : IVendor { /*...*/ }我不清楚你为什么要问抽象工厂,或者你想要做什么。
https://stackoverflow.com/questions/2943776
复制相似问题