我有一个包含5-6个项目的大型VS.NET项目,其中一个项目是核心动态链接库。
现在,为了添加一些插件支持,我提取了一个接口,但是接口需要使用其他类,而Core.dll需要接口,所以我不得不将它们分开。(我不能互相指代)
在这之后,我的一天被毁了,因为即使花了大约4个小时,我也无法把它们分开!最后,我创建了类似于20+项目,但它仍然不工作(实际上甚至不关闭)。看起来,我最终会有50个项目,需要修改大量代码才能得到正确的结果。
我意识到,我的代码是高度耦合的,并被回咬。
我做得对吗?现在,我是否必须支付我的会费,并且因为我的高度耦合的代码而受苦?还是我漏掉了什么?
发布于 2009-04-27 15:32:17
如果您使用接口,您应该能够将您的接口从核心DLL中提取出来,并为该原始接口上的任何需求提供接口,而不会带来太大的痛苦。
如果通过界面具有高度耦合的依赖关系,则可能需要重构一点。尝试从主接口的依赖项中提取接口或基类(这很容易进入新项目)。这应该有助于防止循环依赖问题--听起来像是您现在遇到的问题。
不过,总的来说,我要说的是,在你做这件事之前,先退一步,考虑一下你的项目。项目布局应该更多地基于功能而不是退步--如果您按照类干净地进行分组,那么大多数依赖问题都倾向于自我清理。为了获得最干净的布局,在尝试提取之前,我会仔细研究一下重构。
发布于 2009-04-27 15:32:09
重构,重构,重构。你得付你的会费,但我认为这是值得的。你会学到很多。
发布于 2009-04-27 15:38:34
你考虑过使用MEF吗?
https://stackoverflow.com/questions/794038
复制相似问题