我有从IPrint继承的多个类。我想用工厂实例化这些类,但我想维护每个类型的单个实例。 这可能吗?是否有可能创建一个单例工厂类来维护实例的字典?
请在下面找到我的示例代码。
public interface IPrint
{
void DoPrint();
}
public class DigitalPrint : IPrint
{
public void DoPrint()
{
// logic
}
}
public class InkPrint : IPrint
{
public void DoPrint()
{
// logic
}
}
public class PrintFactory
{
private static IDictionary<IPrint, object> prints = new
Dictionary<IPrint, object>();
private PrintFactory()
{
}
public static IPrint GetPrint(PrintType type)
{
// return instance depending on type. Instantiate only once
//like singleton
// How to write so that it returns a single instance depending
//on type
return null;
}
}
public enum PrintType
{
DigitalPrint,
InkPrint
}
有人可以给我一些想法,如果这是可能的吗?
谢谢。
也许静态的IDictionary <平面广告类型,IPRINT>打印=新词典<平面广告类型,IPRINT> ();在静态ctor中:打印[DigitalPrint] =新的DigitalPrint();打印[InkPrint] =新的InkPrint();在GetPrint中:return prints [type];一旦你创建了IPrint,那么你只能返回signle实例。 – DdarkSideE