每次启动基于依赖注入的新解决方案时,我都会问自己一个问题。我通常有一个专用的接口组件 - 这个接口由每个其他解决方案模块引用。我是否需要使用一些小的用户数据类型,我也用它来存储接口程序集中的那些。这似乎是最合乎逻辑的事情,但它总是使得inerface组装项目看起来像垃圾箱。
问题是 - SearchParams
,SimpleTask
和ComplexTask
的最佳位置是什么?请参考下面的示例。
这就是我用来做的事情:
Common.Interfaces
interface IScheduler { Boolean ScheduleTask(ITask task); ITask FindTask(SearchParameters search); } interface ITask { ... } class SearchParameters { ... }
Common.Scheduler
class Scheduler : IScheduler { ... } class SimpleTask : ITask { ... } class ComplexTask : ITask { ... }
此处SimpleTask
和ComplexTask
的问题是,无论我在哪里调用IScheduler.ScheduleTask(...),都需要我引用Common.Scheduler。而SearchParameters
的问题在于它可以很好地浪费接口。想象一下,在同一个组件下存储了数百种小类型。
答案 0 :(得分:0)
为什么在致电Common.Scheduler
时需要引用IScheduler.ScheduleTask
?此方法正确使用该接口,因此调用此方法不需要您引用Common.Scheduler
如果您正在使用其中一种具体类型SimpleTask
或ComplexTask
,则只需引用该程序集。在这种情况下,您需要引用该程序集是正确的。