5

我继承了一个没有经过深思熟虑的代码库,并且遇到了一些循环引用问题。我的团队目前没有时间或资源来进行大规模的重构,所以我想知道是否有一些我可以翻转的开关说“以原子方式构建这两个 dll”。

一个简化的例子:

DLL D0:
    class A1 -> References B1
    class B1 -> References A1

A1 和 B1 类相互引用,因为它们在同一个 DLL 中,这很好 - 但它们没有太多共同点,所以我想将它们分解成单独的 dll。

但是,由于循环引用问题,以下是不可能的:

DLL D1: class A1 -> References D2.B1
DLL D2: class B1 -> References D1.A1

我希望能够告诉 MSBuild 构建 (D1+D2),就好像所有代码都在一个 dll 中一样。有什么我可以在这里做的,还是我遵循 SOP 并“破解它”?

免责声明:我理解这意味着我的模型存在更大的问题(最明显的是接口使用不当),但在小公司中,现实世界的场景要求我以牺牲最佳实践。

4

1 回答 1

12

我的团队目前没有时间或资源进行大规模重构

所以...不要这样做:

但它们没有太多共同点,所以我想将它们分解成单独的 dll。

在您可以对整个解决方案进行重大重构之前,请不要理会它。

在这种情况下,重构组织的烦恼将迫使下游进行大量重构。你有更大的问题要处理。我去过那儿。我对你有感觉。祝你好运朋友。

于 2013-01-16T19:07:08.060 回答