改修に次ぐ改修で魔境と化しているコード
その中のある一幕
public class FooX{
public void foo(){
FooA obj = getFooA();
obj.bar();
}
public FooB getFooA(){
return new FooB();
}
}
public class FooA{
public void bar(){
//処理が書いてある
}
}
public class FooB extends FooA{
public void bar(){
//処理が書いてある
super.bar();
}
}
ケースバイケースな印象。
例えば、
FooX#getFooA()を子クラスからオーバーライドされる前提で作っているなら、割とアリな気もする。メソッドの戻り値が
FooBな点は少し気になるけども。