0

私はドメイン駆動開発から始めて、たくさん読んだ後、DDD の方法でアプリケーションをリファクタリングしようとしています。しかし、私は根本的な問題に直面しており、解決方法がわかりません。

導入として、私のアプリケーションが実行する必要がある単純化されたタスクをいくつか示します。コース予約アプリです:

  • コースは、カテゴリ、日時、説明、および場所で構成されます
  • カテゴリと場所はドロップダウン ボックスから選択できます
  • 特別な設定セクションにより、ユーザーはカテゴリと場所を追加および変更できます

オブジェクトの不変状態について少し混乱しています。最初に、たとえば、lcoation はアイデンティティを持っているため、エンティティ オブジェクトでなければならないと考えました。しかしもちろん、場所自体は不変であり、変更することはできません。

私は本当に混乱しています。誰かが私の視界をクリアにするのを手伝ってくれますか?

4

3 に答える 3

0

決定は、それらを識別する方法に基づいています。(不変性ではありません)

通常、場所はエンティティです。ただし、場合によっては、識別子を気にするだけであれば、値オブジェクトでも問題ありません。

@Entity
Location {
    @Identifier private String code;

    //many other mutable properties
}

@ValueObject
Location {
    private String code;//the only property
}

DDD は、製品情報やその他のコンテンツ管理指向のものなどのドメインが苦手です。元の構造を維持したいのですが、小さなサブドメインを見つけて、在庫や価格設定などをリファクタリングします。

于 2013-11-23T01:44:01.947 に答える