【发布时间】:2012-08-05 12:28:29
【问题描述】:
我希望通过“根”实用程序(对象)公开一系列工厂对象。这个根实用程序本身就是一个工厂。作为一个实用对象,我希望将它实现为一个静态类。但是,使用我当前的设计是不可能的……因为你不能在接口中实现静态成员。
所以...
我的问题是:我怎样才能改变下面的类来获得上面的静态工厂影响?
代码看起来像:
public interface IFactory
{
I Create<I>();
IFactoryTransform Transformer { get; }
IFactoryDataAccess DataAccessor { get; }
IFactoryValidator Validator { get; }
}
public static class Factory : IFactory
{
static Factory()
{
Transformer = new FactoryTransform();
DataAccessor = new FactoryDataAccess();
Validator = new FactoryValidator();
}
public I Create<I>()
{
var model = typeof(I);
// Activation code will go here...
throw new NotSupportedException("Type " + model.FullName + " is not supported.");
}
public IFactoryDataAccess DataAccessor { get; private set; }
public IFactoryTransform Transformer { get; private set; }
public IFactoryValidator Validator { get; private set; }
}
【问题讨论】:
-
你可以查看miroprocessordev.blogspot.com/2011/12/…这个帖子来创建一个单例模式,我认为你不必在构造函数中实例化你的对象
标签: c# design-patterns factory-pattern