我正努力成为更好的开发者......
我正在与之合作:
我一直在做一些阅读,我想我想做的是:
我有一个基础存储库接口,我的聚合存储库接口将实现...
public interface IRepository<T>
{
IEnumerable<T> ListAll();
T GetById(int id);
bool Add(T entity);
bool Remove(T entity);
}
我的订单存储库界面定义如下......随着我对此学习练习的深入了解,可能还会有其他方法。
public interface IOrderRepository : IRepository<Order>
{
}
我的服务类基本上与存储库定义相同,只是每个服务实现都包含业务逻辑。这些服务将在构造函数中使用一个存储库接口(在本练习中,我还没有为IoC做好准备,但我相信这就是我最终要走的路。)
我希望得到一些有关分离问题的方向的反馈意见。
由于
答案 0 :(得分:1)
我认为你正朝着关于存储库模式的正确方向前进。关于您关于ViewModel类的问题,我建议您使用将业务服务方法输出的输出转换为某些所需输出的内容。例如,您的订单业务服务可能有一个名为GetOrders()
的方法。使用自定义属性,您可以为其定义视图类类型。视图能够获取此方法的输出,可能将其与其他类型的数据连接,并将结果作为具有匿名类型的对象的集合返回。在这种情况下,视图会以IQueryable<Order>
或IEnumerable<Order>
作为输入,并返回IList
作为输出。
当您需要在客户端显示不同类型的数据视图时,此方法将极大地帮助您。我们已经在公司的框架中使用了类似(但更复杂)的方法。