当前有一个方法返回一个属于两个类之一的对象。 我想将它重构为更直观的东西,如果我添加第三类等,可以轻松扩展。
实施此更好的方法是什么?
public Object getResult() {
if (foo != null) {
//foo is of class Foo
return foo;
} else {
//bar is of class Bar
return bar;
}
}
答案 0 :(得分:2)
我认为最好的办法是返回两个对象的公共接口或超类。
如果不存在这样的接口或类,您可以创建一个定义Foo和Bar将满足的合同以及getResult的调用者依赖的合同。
如果这两个类是完全不相交的,我建议不要使用这样的getResult,因为在这种情况下它不是很有意义。