- - PR -
検索一覧表示のメソッド引数について
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-12-01 20:31
現在、社員管理システムのクラス設計をしてます。
ここで、社員一覧を検索する画面のメソッドで迷ってます。 画面に抽出条件があり、 あるクラスにて社員一覧取得をさせようとしてますが、 この場合、社員一覧取得メソッドの引数は 画面全部の項目を渡すのでしょうか? それとも画面の項目と同じメンバを持ったクラスを定義し、そこにsetしクラスを 引数とするのでしょうか? それとも別のやり方でしょうか? 引数をベタに書くのは嫌だな〜と思い投稿しました。 ぜひ、お力をお貸しください。 | ||||||||
|
投稿日時: 2003-12-01 20:49
画面単位に引数クラスを作るより、まとまった単位でクラスを作成して、 引数とした方が汎用性が有ると思いますよ。 | ||||||||
|
投稿日時: 2003-12-01 21:01
ぽんさん返信ありがとうございます。
最初は社員検索だから社員クラスへセットして渡そうと思っていましたが、 入社日のFrom〜Toはどうしよう?からこの問題に直面しました。 まとまったクラスは検索用のクラスと考えてよろしいでしょうか? 概念クラスなどでは出てこないし、 クラスの関連も特にないと考えてよろしいでしょうか? (検索するメソッドを持ってるクラスには関連するかも?) | ||||||||
|
投稿日時: 2003-12-01 21:15
1番目の引数バラバラは非オブジェクト指向的な保守性の悪い方法です。後で項目が追加されたときに引数を追加する必要があります(シグネチャが変わる)。また、そのメソッドを利用するコードすべてを修正する必要があります。 2番目の方法は方向性はあっていますが、帳票/画面ベースでのクラス設計はお勧めできません。文脈からするとScreen001.java等の画面ベースのモデリングに感じましたが、きちんとビジネスモデルを分析して、社員クラス、部署クラス、担当プロジェクトクラス等、抽出してそれらのクラスの関係もきちんと設計したあとで、それをUIにマッピングすればよいと思います。そうすれば、UIの変更にも強いシステムになると思います。 | ||||||||
|
投稿日時: 2003-12-01 21:36
その入社日だけと考えるとバラバラに渡してしまってもよいかな... 引数の数が多くなった場合、クエリークラスを起こすのがよいでしょうか? List getEmployeesByStartDate(Employee from, Employee to) も冗長な気がしますよね? ケースバイケースでしょうか。 | ||||||||
|
投稿日時: 2003-12-02 09:51
プリンスさん返信ありがとうございます。 ケースバイケースですかね。 今度の構築システムでは検索条件を日付、数量はかならず From、Toで行う予定としています。 今後、検索条件も増えると予想できますので 検索条件クラスを起こしておくのが賢明でしょうか。 話はそれますが、 例えば中古車情報(gooなど)の車種検索って詳細検索では いろいろな情報渡していると思いますが どのように行っているのでしょうかね? [ メッセージ編集済み 編集者: kenken 編集日時 2003-12-02 09:52 ] | ||||||||
|
投稿日時: 2003-12-02 10:29
「まとまった単位のクラス」とはプリンスさんが仰る様に、社員クラス・部署クラス・担当プロジェクトクラス等の事です。 画面に依存しないクラスを作成する事によって、画面の変更に耐えれると言う事ですね。 以上の事をふまえて、もう一度クラス設計をしてみてはいかがでしょう? (そうすれば自ずと「From〜To」の問題も解決するかも
「まとまった単位のクラス」と「検索条件クラス」は別ですのでお気を付けを。 | ||||||||
|
投稿日時: 2003-12-02 11:09
[/quote]
「まとまった単位のクラス」とはプリンスさんが仰る様に、社員クラス・部署クラス・担当プロジェクトクラス等の事です。 画面に依存しないクラスを作成する事によって、画面の変更に耐えれると言う事ですね。 以上の事をふまえて、もう一度クラス設計をしてみてはいかがでしょう? (そうすれば自ずと「From〜To」の問題も解決するかも [/quote] ぽんさん返信ありがとうございます。 もしかして、引数に社員クラス_formと社員クラス_toといった形で 1つのクラスを2つ渡すことで解決できるのでしょうか。 今までは社員クラスのみだとFrom〜Toが解決できないな〜と 悩んでおりました。 | ||||||||
