我有一系列我希望通過「根」實用程序(對象)公開的Factory對象。這個根實用程序本身就是...工廠。作爲一個實用對象,我希望將它作爲一個靜態類來實現。然而,使用我目前的設計是不可能的,因爲你不能在界面中實現靜態成員。你如何創建靜態工廠?
所以......
我的問題是:我怎樣才能改變下面的類以獲取靜態工廠上面的影響?
代碼如下:
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; }
}
你可以檢查這個帖子http://miroprocessordev.blogspot.com/2011/12/design-patterns-series-7-singleton.html創建一個單身模式,我認爲你不必實例化你的對象在構造函數 – 2012-08-05 12:36:33