【发布时间】:2015-06-02 05:02:41
【问题描述】:
我有一个 C# .Net 解决方案集合,最初是作为概念证明,现已发展到近 15 个不同的项目。我目前正在重写整个产品系列,并尝试通过面向未来的组织,尽我所能保持最佳实践。
我已经进行了一些研究,但我仍然不清楚将代表留在多项目产品中的最佳位置,以最大程度地减少将来需要重构的可能性。
我认为普遍的共识是,您可以将它们放置在对用例有意义的任何位置,但总的来说,我认为有一种最佳方法可以在解决方案中构建所有内容,以最大限度地减少问题、促进积极的模块化并简化维护.
在许多情况下,建议他们在使用他们的地方旅行;大概在类文件上方的命名空间中声明,在我的情况下,这将转换为我的公共库,其中包含强制事件的公共接口。我目前在他们自己的文件中有代表,在“代表”命名空间中。我这样做是否存在疏忽,或者我是否使代表的用例过于复杂 - 或者这是否符合当前的使用预期?
我已经完成了典型的搜索,但没有找到任何可信或实质性的内容;但这可能是关键字选择不当的结果。
【问题讨论】:
-
如果项目很大,并且您想要 SOLID 类型的解耦,我会给代表以与
interfaces相同的处理方式,即在独立程序集中,以便发布者/实现和订阅者/回调代码都耦合在代表程序集(以及它们使用的任何类型)上,而不是直接相互耦合。我不得不承认,现在看到没有明确委托类型的裸Func或Actions 更为常见(与通用 IEnumerables 和 ILists 等类似的想法)。 -
感谢 StuartLC!。 Func/Action/Predicate/Converter/Comparison 对我来说是新的。感谢您引起我的注意!
标签: c# .net delegates namespace-organisation