我正在尝试从一个第三方库到另一个第三方库的转换(gwt-ext
到 gxt
)。为了帮助最大限度地减少前期更改,并确保一致性和可测试性,我们决定创建实现旧 API 的代理类并将它们映射到新 API。
例如,像 Panel
这样的东西现在可能是 ContentPanel
。旧的面板可能有一个名为 setEl(String name)
的方法,现在应该映射到 setElement(String name)
。为了实现这一点,我们创建了一个包含 ContentPanel
的 Panel
类。然后在 Eclipse 中,我们调用 Source ->Generate DelegateMethods...
来创建两个 API 可能共有的方法。然后,我们创建的任何丢失或更改的 API 都存在于 Panel
类中,并传递到所包含的 ContentPanel
中的相应处理程序。完成此操作后,我们想要重构我们的类(基本上是内联),让所有内容直接调用“ContentPanel”上的方法,并在调用旧方法的每个位置使用我们在手工实现的方法中所做的任何魔法。
执行此操作的最佳方法是什么?我认为 Eclipse 中已经有一个重构可以处理这个问题,但我没有找到它。
当然,如果您认为有更好的方法来进行这样的迁移,我也愿意接受相关建议。
最佳答案
IntelliJ IDEA有inlining refactoring这对于你的情况可能非常有用。不确定 Eclipse 是否有一个插件,但也许有一个插件可以内联?
关于java - 取消委托(delegate)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5407762/