【发布时间】:2015-04-27 13:35:31
【问题描述】:
我需要创建一个 Sync 方法。 1) 在输入时,它需要 SyncRequest 对象。
class SyncRequest{
public List<SyncObj> Objects{get;set;}
}
class SyncObj{
public Type Type{get;set;}
public object Object{get;set;}
}
2) 根据每个对象的类型,我需要使用不同的服务进行处理,并使用不同的存储库来保存数据。
即如果我得到了用户、用户、任务类型的 3 个对象。我将按类型对它们进行分组,然后继续使用 UserService 和 TaskService。
我正在尝试使用 Onion Architecture 构建我的 web.api。 DataAccess、Core、Services 是相互分离的。我想在我的代码中避免使用 swich 或 if's。
我提出的所有想法都很丑陋。例如Dicitionary<Type, Service>,以及手动转换。
我觉得 Ninject 可能对我的问题有很好的回答,有一些工厂功能,但我想不出。
谁能描述这种模式应该如何工作。或者这种模式如何调用,在哪里阅读。
【问题讨论】:
-
不确定我是否理解正确,但Handler-Patern 似乎很合适。
-
不同服务(
UserService、TaskService)是否共享一个接口? -
This article 描述了@john 更详细描述的处理程序模式。
标签: c# ninject asp.net-web-api nancy onion-architecture