问题描述
下面是我的代码。
我有一个Factory
返回了IDataTrasformer
。
public interface IDataTransformerFactory
{
IDataTransformer Create();
}
public class DataTransformerFactory:IDataTransformerFactory
{
private readOnly IExtendedProvider _extendedProvider;
private readOnly IDataExportProvider _dataExport;
public DataTransformerFactory(IExtendedProvider exProvider,IDataExportProvider dataExport)
{
//assigned each one
}
public IDataTransformer Resolve()
{
return new DataTransformer(_configProvider,_datalocater,_dataExtender);
}
}
public class DataTransformer:IDataTransformer
{
public DataTransformerFactory(IExtendedProvider exProvider,IDataExportProvider dataExport)
{
//assigned each one
}
}
另一个返回IDataProvider的“ Facotry”
public interface IDataProviderFactory
{
IDataProvider Get();
}
public class DataProviderFactory:IDataProviderFactory
{
private readOnly ILocationProvider _locationProvider;
private readOnly IReportProvider _reportProvider;
public DataProviderFactory(ILocationProvider locationProvider,IReportProvider reportProvider)
{
//assigned each one
}
public IDataProvider Resolve()
{
return new DataProvider(locationProvider,reportProvider);
}
}
public class DataProvider:IDataProvider
{
//class members location and report providers
public DataProvider(ILocationProvider locationProvider,IReportProvider reportProvider)
{
//assigned each one
}
//stuff related to this class
}
以上每个类都已命名为“ Factory”,并且正在返回自己的类型。 每个返回类型都不同。所以我以为我会做一个如下的DataManagerFactory
public class DataManagerFactory : IDataManagerFactory
{
private readOnly IExtendedProvider _extendedProvider;
private readOnly IDataExportProvider _dataExport;
public DataManagerFactory(IExtendedProvider extendedProvider,IDataExportProvider dataExportProvider)
{
//assigned each one
}
public IDataTransformer CreateDataTransformer()
{
return new AbsoluteDataTransformer(_configProvider,_dataExtender);
}
//if i implement the other interface method,how will i resolve depedency?
}
public interface IDataManagerFactory
{
IDataTransformer CreateDataTransformer();
IDataProvider CreateDataProvider();
}
现在到这里为止都很好,但是我必须实现CreateDataProvider()(返回IDataProvider())并必须以某种方式解决它。我正在使用StrucutreMap,但我不知道该如何解决。
每个这样的界面都可以像这样使用Structuremap解析
For<IExtendedProvider>().Use<ExtendedProvider>();
我不确定结构是否正确?我必须改变结构吗?如果是这样,正确的方法是什么?我有点卡住...任何帮助将不胜感激
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)