1

我有一个包含 5-6 个项目的大型 VS.NET 项目,其中一个项目是 Core DLL。

现在要添加一些插件支持,我提取了一个接口,但是需要接口才能使用其他一些类,并且 Core.dll 需要该接口,因此我必须将它们分开。(我不能互相引用)

在那之后,我的一天被毁了,因为即使花了大约 4 个小时,我也无法将它们分开!最后,我创建了 20 多个项目,但仍然无法正常工作(实际上甚至没有关闭)。看起来我最终将完成 50 个项目,并且需要更改大量代码以使其正确。

我知道我的代码是高度耦合的,并且有点退缩。

我这样做对吗?现在我是否必须为我的高度耦合的代码付出代价并受苦?还是我错过了什么?

4

4 回答 4

3

重构,重构,重构。你将不得不支付你的会费,但我认为这是值得的。你会学到很多东西。

于 2009-04-27T15:32:09.530 回答
3

如果您使用接口,您应该能够将您的接口从核心 DLL 中拉出,并且接口可以满足对该原始接口的任何要求,而几乎没有痛苦。

如果您的接口具有高度耦合的依赖关系,您可能需要进行一些重构。尝试从主接口的依赖项中提取接口或基类(这很容易拉入新项目)。这应该有助于防止听起来像您现在遇到的循环依赖问题。

不过,总的来说,我会说在你做这件事之前先退后一步想想你的项目。项目布局应该基于功能而不是依赖关系——如果你根据类的干净程度对它们进行分组,大多数依赖问题往往会自行清理。在您尝试提取之前,我真的会考虑重构它,以便获得最干净的布局。

于 2009-04-27T15:32:17.050 回答
1

您是否考虑过使用MEF

于 2009-04-27T15:38:34.353 回答
0

您是否已经创建了依赖关系图?Graphviz dot 可以帮助可视化(和解释)问题。

于 2009-04-27T18:22:18.017 回答