[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 メーリングリストの案内