每次启动基于依赖注入的新解决方案时,我都会问自己一个同样的问题。我通常有一个专门用于接口的程序集——每个其他解决方案模块都引用这个程序集。如果我需要使用一些小的用户数据类型,我也会将它们存储在接口程序集中。这似乎是最合乎逻辑的事情,但它总是让惰性面组装项目看起来像一个垃圾箱。
问题是,SearchParams
、SimpleTask
和ComplexTask
最好放在哪里?请参考下面的例子。
That s how I use to do:
Common.Interfaces
interface IScheduler { Boolean ScheduleTask(ITask task); ITask FindTask(SearchParameters search); } interface ITask { ... } class SearchParameters { ... }
Common.Schedur
class Scheduler : IScheduler { ... } class SimpleTask : ITask { ... } class ComplexTask : ITask { ... }
SimpleTask
和ComplexTask
的问题是,无论我在哪里调用IScheduler.ScheduleTask(…),都需要引用Common.Scheduler。SearchParameters
问题是,它严重浪费了接口。想象一下,在同一个程序集中存储了数百个小类型。