アプリケーションアーキテクチャ その2
前回の直後に書くつもりだったんだけど・・・。
前のアーキテクチャだと、わざわざ「Converter」なんて
JSFでやってくれているものを、実装してしまっています。
Strutsじゃあるまいし、なんで、こんなものを
導入する必要があるのでしょうか。
それは、一部の例外的な項目に対応するためです。
その例外的な項目とは、例えば、「年」「月」「日」に分かれた入力項目。
日付なんかは、テキストボックスにスラッシュ区切りで書かせれば良いじゃん、
って声もあるんですが、要件によっては、そうも行かないことがあります。
また、DtoでCalendar型で定義して、値を直接出し入れしても良いんですが、
Dtoのgetter/setterに処理を書くと、得てして問題が起こりがちです。
でもね、
そういう例外的な項目は、全てカスタムコンポーネントとして切り出して、
JSFのカスタムコンバータで変換できるようにさえしておけば、
「Converter」なんて自作する必要がなくなりますよね。
それが出来るのなら、こんなアーキテクチャにできるはずです。
これで、やっと「くーす」まで来ました (^^;
それを実現するための抽象コンポーネントをFW側に用意できれば
(例えば、抽象複数項目コンポーネントと、その抽象コンバータ)
ぐぐっと理想に近づくと思うんですけどね。
実現できるかどうか、また日を改めて検討してみます。