[seasar-s2dao-dev:49] Dao/BeanMetaDataImpl等の拡張リファクタ
kubo
jazzflute @ mbn.nifty.com
2006年 11月 25日 (土) 00:31:56 JST
久保です。
S2Daoのコミッタながら、コアユーザでもある立場からの提案です。
Dao/BeanMetaDataImplの拡張をしやすくするためのリファクタリングを
したいでのすが、よろしいでしょうか?
例えば、BeanMetaDataImpl.createRelationPropertyType()に関して、
中でBeanMetaDataImplをnewしていますが、これをFactoryMethodに
置き換えるなど。
createRelationPropertyType()をオーバーライドして、
そのままコピーしてちょっとだけ修正ということをやっているのですが、
「更新したプロパティのみをUPDATE文に含める」に関する修正で
このメソッドは修正されますので。。。
できれば今後のためにも「無理やりオーバーライド」を
させたくない(したくない)と思いました。
1. DaoMetaDataImpl.initialize()内の「new BeanMetaDataImpl()」を
FactoryMethodにする。
2. DaoMetaDataImpl.initialize()内の「new ResultSetHandlerFactoryImpl()」を
FactoryMethodにする。
3. BeanMetaDataImpl.createRelationPropertyType()内の
「new BeanMetaDataImpl()」をFactoryMethodにする。
4. BeanMetaDataImpl.createRelationPropertyType()内の
「beanMetaData.setXxx()」を呼び出している部分を
protectedの別Methodにする。
5. ResultSetHandlerFactoryImplをpublic(or protecgted?)クラスに
する。(現状PackageScopeのため全く触れない)
6. ResultSetHandlerFactoryImpl.createResultSetHandler()の
各ResultSetHandlerの生成をFactoryMethodにする。
--
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
kubo <jazzflute @ mbn.nifty.com>
jflute <http://d.hatena.ne.jp/jflute>
株式会社ビルドシステム <http://www.buildsystem.co.jp>
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
seasar-s2dao-dev メーリングリストの案内