- - PR -
検索一覧表示のメソッド引数について
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-12-02 11:33
どの様な設計を行っているのか分からないので、適切では無いかもしれませんが。 下記のような構成ではどうですか?
| ||||||||
|
投稿日時: 2003-12-02 11:41
unibon です。こんにちわ。
複雑な検索条件をとりまとめるクラスの作り方の話題ですよね。 デザインパターンの Strategy(か Template Method ? や Command ?)が近いような気がします。 #あまりパターンにこだわるわけではありませんが。 たとえて言えば、 java.lang.Object.equals や java.lang.Comparable.compareTo は一般的な比較ですが、差し替えができない(複数持たせられない)ので、 差し替えを考えた場合は java.util.Comparator.compare を使いますが、 これの拡張を意識されると良いと思います。 検索条件に「社員クラス」を流用するのは、 拡張性がないので複雑な検索条件では破綻するので、 検索条件の複雑さに応じて早めに諦められるほうが良いかもしれません。 | ||||||||
|
投稿日時: 2003-12-02 11:50
Kenkenさんの作られてるシステムはどれくらいの規模でしょうか?
社員検索ということは、iOfficeのような予定表、プロジェクト管理の社内利用のグループウエアでしょうか?規模的に小さなものであれば最初はString, Date等のプリミティブなクラスで作っておいて将来引数の数が増えたらクエリー専用クラスを作成するという、XP的手法(リファクタリング)でよいと思います。 その際、クエリー専用クラスを作る場合は、独立したクラスではなくて集約(aggregation)を使用して、 class EmployeeQry { Employee from; Employee to; } class Employee { String code; String name; Date start; ... BuSyo busyo; Project tantouPrj; } とすると分かりやすいと思います。 それから、Gooの検索ページを拝見しましたが、CGIベースのカテゴリー検索がほとんどで、検索パラメータが複数出てくるような感じではなかったですが? あの程度の検索パラメータならクエリークラスを設ける必要性は無いと思います。 J2EEのチュートリアルをみても、境界条件等パラメータが少ない場合はString等でバラバラに渡しています。 業務系の検索ページでパラメータが何十個もある場合は、きちんとクラス設計したほうがぐちゃぐちゃにならないと思います。 | ||||||||
|
投稿日時: 2003-12-02 11:54
ぽんさん返信ありがとうございます。 確かに設計次第ですが、入社日にFrom、Toを持っておくのは 考えておりません。 あくまでも検索画面にFrom,Toが存在しているだけだと思っています。 | ||||||||
|
投稿日時: 2003-12-02 12:09
プリンスさん返信ありがとうございます。
現在の社員管理システムは検索条件は少ししかありませんが、 他部署で行ってる業務で50個くらいの検索条件の画面が あり、関連していたのでここに載せてみました。
非常に分かりやすい返信ありがとうございます。 上記を見た瞬間、モヤモヤが消えました。 ありがとうございました。 | ||||||||
|
投稿日時: 2003-12-02 12:45
解決された様ですが・・・
上記は僕の勘違いでした。 (社員クラスを検索条件クラスと思ってました、失礼)
unibonさんが仰る様に社員クラスを検索条件として、使用するのは汎用的では有りません。 [画面]->[検索条件クラス]<-[検索条件作成クラス]->[社員クラス]・[その他、日付クラスなど] の様にすると[画面]の変更が社員クラスまで及ばないので変更に強いシステムになります。 お試しあれ | ||||||||
