0

誰かが私がこのデザインをモデル化するための最良の方法を決定するのを手伝ってくれることを願っています。

Clientドメインクラスがあります。PersonコマンドオブジェクトとFirm、会社または組織のいずれかを表すコマンドオブジェクトがあります。

サブクラスもあります。名前を付けるために、両方とも拡張するClientSubClass1サブクラスを呼び出しましょう。ClientSubClass2Client

私が困惑しているのは、クライアントが個人または企業のいずれかになることができるはずだということです。

したがって、私が感じる最善の方法は、埋め込みを使用して、FirmクラスとPersonクラスの両方をClientクラスに埋め込み、クライアントが個人であるか会社であるかを示すフラグを追加することです。そうしないと、継承を使用して必要なことを達成する方法がわかりません。

どんな考えでも本当にありがたいです、ありがとう。

4

2 に答える 2

0

Grailsでは、ドメインクラスで継承を使用できます。GORMは、明示的にフラグを宣言しなくても、データベースにフラグを作成して管理します。Clientから継承するPersonドメインクラスとFirmドメインクラスを作成します。

コマンドクラスは主に、リクエストのパラメーターをコントローラーアクションにバインドする場合に役立ちます。これは、データの保存方法と取得方法とは多少関係ありません。

于 2012-08-05T04:53:11.230 に答える
0

この質問に答えてまとめるために、Person and Organizationサブクラス(tableperHierarchy false)を持つより高いレベルのContactドメインクラスを作成することにしました。

クライアントはPersonを拡張し、埋め込まれた組織と、そのクライアントを参照するときに個人の詳細または組織の詳細を使用する必要があるかどうかを示すフラグを含みます。たとえば、クライアントの名前を表示する場合など、個人名(役職、名、イニシャル、姓)または埋め込まれた組織の会社名を使用します。

Contactクラス定義内では、「src / groovy」に保持されている埋め込みAddressクラスも使用しているため、独自のテーブルは作成されません。

ですから、私は構成と継承が混在していて、非常にうまく機能しています。

于 2012-08-17T17:26:13.497 に答える