2011-12-30 14 views
0

私はドメインモデルをUMLで素早く定義しました。私はドライブアウト機能をテストし始めました。リファクタリングは私のドメインの概念を表現しない小さなクラスに導きましたが、これらのクラスは必要な責任をうまくカプセル化します。ユビキタス言語にDDDを追加するには?

たとえば、多くのライセンスを持つマシン(マシン---> *ライセンス)から始めました。私は、リスト内の対応するライセンスオブジェクトを増減する(つまり、ライセンスにはそのタイプのライセンス数のカウンターがある)メソッドAdd(licenseType)とremove(licenseType)から始めました。

マシンには他の関連付けや動作がありますので、Machine ---> 1 LicenseTypeManager ---> * LicenseのLicenseTypeManagerを作成しました。

私はMachineを集計ルートとして、ValueTypeオブジェクトとしてLicenseTypeManagerを、ValueオブジェクトとしてLicenseを持っています。

LicenseTypeManagerは、リファクタリング時に作成したものであり、まったく言及されておらず、アプリケーションのユビキタス言語の一部でもありません。それが存在するのは大丈夫ですか?

言い換えれば、ULを使用してモデル化し、ドメインをより明確に説明するのに役立つ他の用語を見つけるのはいいですか?

また、私はLicenseTypeManagerがドメインサービスである可能性があると考え始めましたが、私は貧血モデルを作成しているかもしれないと心配し始めました(モデルにはまだ多くのロジックがあります)。ですから、私の次の質問は、それがドメインサービスであるべきか、それがどこに残るべきかです。

JD

+0

の知識が不足しています2は今まで閉じています。なぜ、どのように私はそれが閉鎖されることを避けることができます助言してください? –

+0

現在、それは2近い票を持っています:第1話「オフトピック」、第2話「非建設的」。また、DDDは「灰色の領域」にあります。それは、抽象度が高く、実世界の問題とソフトウェアエンジニアリングの間に立っています。 DDDのアイデアに精通していない人にとっては、質問は無意味なように聞こえるかもしれません。 –

答えて

3

ユビキタス言語の濃縮を起こすかは重要ではありません。しかし、それは遍在していることが重要です。

ドメインをモデル化して理解を容易にする新しい用語を見つけた場合、ドメイン専門家が理解しているかぎり、すでに使用しているか使用している限り間違いはありません。

あなたは車を販売しており、プログラミングについては何も知らないと想像してください。
Car type managerあなたには意味がありますか?ありそうもない。ドメインにも生きてはならない。

私はそれを見るように:
- あなたは集計根、エンティティと値の区別が
オブジェクト理解していない - あなたはOOP in general(それゆえあなたは、「管理職」の導入により償還を求める)

関連する問題