我对C#或Java重构命名空间或包非常恼火。如果您在许多类中引用了许多独立项目中使用的公共包中的类,并且如果您决定将该包作为当前父包的包子移动,则必须修改所有客户端,因为您不能使用这样的泛型导入
导入mypackage。*
这将允许重构而不会影响客户端。
那么,如果对这么小的变化影响如此之大,你如何设法进行重构呢?
如果客户的代码不在我的控制范围内,我会被卡住怎么办?
答案 0 :(得分:3)
使用支持重构的IDE。如果在Eclipse中移动java文件,则会更新所有引用。重命名,包名称更改等相同。非常方便。
答案 1 :(得分:3)
这听起来像是在询问有关编译和部署到其他项目的软件包,例如jar文件。这是让您的API尽可能正确的一个重要原因。
How to Design a Good API and Why it Matters
我认为您可以弃用现有结构并将每个类修改为新重构类的包装器或外观。这可以让您灵活地继续改进新结构,同时减慢使用旧代码的迁移项目的速度。
答案 2 :(得分:1)
想象某人正在进行像import com.*
这样的导入,如果它像你想要的那样,它会在com
包中加载任何东西,这意味着将要导入数以万计的类,然后你会抱怨它为什么这么慢,为什么它需要太多的记忆......
在您的情况下,如果您使用IDE,它将负责大部分工作并且非常简单,但如果您的应用程序架构需要,您仍然需要将新的可执行文件部署到您的客户端。