我需要创建一个查询api。所以,我创建了以下代码结构
interface IDataProvider
{
IEnumerable<SomeData> GetData()
}
class FirstDataProvider : IDataProvider
{
private IojectRequiredForCalucation _instance
public FirstDataProvider(IojectRequiredForCalucation instance )
{
this._instance = instance;
}
IEnumerable<SomeData> GetData()
{
// calculate using _instance object
}
}
class SecondDataProvider : IDataProvider
{
private Iobject2 _instance
public FirstDataProvider(IObject2 instance )
{
this._instance = instance;
}
IEnumerable<SomeData> GetData()
{
// calculate using _instance object
}
}
Class QueryApi
{
IDataProvider _dataProvider;
public QueryApi(IDataProvider dataProvider)
{
this._dataProvder = dataProvider
}
public IEunmerable<DataToClient> GetDataForItem(Item item)
{
var someDatae = _dataProvider.GetData()
// do some processing and return back data to client.
}
}
现在,我将把查询API暴露给客户端。
应该委派谁创建数据提供程序客户端或的任务 框架本身(QueryApi)??
就我而言,我是客户和创造者。所以,我可以做任何我想做的事情,但我想知道在实际使用案例中,委托提供者创建的最佳方式是什么,以及如何提供这些提供者的依赖。