[Seasar-user:10907] Re: S2Dxo での配列の取り扱いについて

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 10月 7日 (日) 23:23:23 JST


小林 (koichik) です.

Date:    Sun, 07 Oct 2007 22:39:17 +0900
From:    "o.h." <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:10906] Re: S2Dxo での配列の取り扱いについて

> 現在はいったん
> 
> >
> > void setVal1(String[] val1)
> > void setVal2(String[] val2)
> >
> 
> とした中間的な bean に Dxo で設定し、その後 FooBean の配列を
> 作成ループで bean に転記していっています.
> 
> ということでなんか冗長な感がありまして、もしかして Dxo で
> 直にいけるんではないかと思った次第です.

この場合は,Dxo のメソッドに独自の変換コードを
書いてしまう方が簡単な気がします.
Dxo はインタフェースだけでなく抽象クラスに
することも可能です.

public abstract class FooDxo {
  public Foo[] convert(Map map) {
    ...
  }
  ...
}

あるいは,インタフェースと実装 (抽象) クラスを
分けることも可能です.

public interface FooDxo {
  Foo[] convert(Map map);
  ...
}

public abstract class FooDxoImpl implements FooDxo {
  public Foo[] convert(Map map) {
    ...
  }
}

いずれの場合も,メソッドが実装されていれば
S2Dxo のインターセプタは適用されません.
実装のない,抽象のままのメソッドにのみ
Dxo のインターセプタが適用されます.
こうすれば,Dxo を呼び出す側は違いを意識する
必要がなく,Dxo のインターセプタを利用できる
ありきたりな変換と,特殊な変換を混在させる
ことができます.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>




Seasar-user メーリングリストの案内