Undelegate方法

时间:2011-03-23 15:37:05

标签: java eclipse delegates refactoring migration

我正在尝试从一个第三方库转换到另一个(gwt-extgxt)。为了帮助最小化前期更改并确保一致性和可测试性,我们决定创建实现旧API的代理类,并将它们映射到新API。

例如Panel之类的内容现在可能是ContentPanel。旧的Panel可能有一个名为setEl(String name)的方法,现在应该映射到setElement(String name)。为此,我们创建了一个包含Panel的{​​{1}}类。然后在Eclipse中,我们调用ContentPanel来创建两个API可能具有共同点的方法。然后我们创建的任何缺失或更改的API都在我们的Source -> Generate Delegate Methods...类中,并传递到我们包含的Panel中的相应处理程序。当我们完成这个时,我们想要重构我们的类(基本上是内联)并让所有东西直接调用'ContentPanel'上的方法并使用我们在旧方法调用的每个位置中用手工实现的方法所做的任何魔术。

最好的方法是什么?我以为Eclipse中已经有一个可以解决这个问题的重构,但是我找不到它。

当然,如果您认为有更好的方式进行此类迁移,我也会对此提出建议。

2 个答案:

答案 0 :(得分:0)

IntelliJ IDEAinlining refactoring,这对您的情况非常有用。不确定Eclipse有一个,但也许有一个内联插件?

答案 1 :(得分:0)

答案是:不要。将目标对象用作组件然后委派是错误的策略。我们最好让我们的代理扩展我们的目标API,然后实现新API中缺少的任何方法并将它们映射到新的API。然后根据需要进行内联工作。