AbstractへDI
下記のような親子関係のクラスがあります。
この時のdiconファイルなのですが、子供ごとにcommonDaoのDI情報を書くのが面倒なので、
・親
public abstract class Parent{protected CommonDao _commonDao;
public void setCommonDao(CommonDao commonDao){
_commonDao = comonDao;
}//共通関数
protected void hogehoge(){
}
}・子
public class Child extends Parent{
public void execute(){
_commandDao.hoge();
hogehoge();
}
}
下記のように書いてみたところダメでした。
Parentはabstractで単体ではインスタンスを作れないので当たり前といえば当たり前ですね。
やはりこういう場合は子供ごとに親にDIする情報を書かないといけないのかな?
※このCommonDaoはインタフェースではないのでautoBindingの対象ではありません。
でも上の様に書いても動く組み合わせがあるんだよね。
CommonDao
だけど、abstractにDIって変だし。
親子関係をやめて、委譲にするのがいいかなぁ。