たとえば、2つのドメインオブジェクト、CellとBody(人間の細胞とボディの場合のように)があります。エンティティがコンテナにコンテナを追加するエンティティを複製するとき、ドメイン駆動型設計では?
Bodyクラスは単なるCellsのコレクションです。
class Body
{
IList<Cell> cells;
public void AddCell(Cell c) { ... }
public void RemoveCell(Cell c) { ... }
}
セルにはスプリット(Split)メソッドがあり、内部的に自分自身のクローンを作成します。 DDDで今
Class Cell
{
public Cell Split()
{
Cell newCell = new Cell();
// Copy this cell's properties into the new cell.
return Cell;
}
}
、セルの分割は、必要がある場合:
- セルは、(各Cellオブジェクトは、それを含む身体への参照を開催したことを意味している)のボディに、新しく作成されたセルを追加しますか?
- または、インサイトユーザリクエストを受信したサービス層がSplitをコールし、返されたCellを収集して本文に追加する必要がありますか? (ドメインオブジェクトではなくコントローラを使用するより貧血的なデザインのように感じる)
- BodyにSplitCellメソッドが含まれている必要がありますか?
ありがとうございます。
セル分割では、1つのマイナーな違いを持つセルの正確なコピーが作成されます。セルを認識しているシステム内の別のアクタが分割をトリガします。この俳優は体の存在を本当に知らない。 – ng5000
私がモデリングしている実際のドメインより奇妙な例を説明するのは簡単です。私は、私が扱っている問題の簡単な抽象的な例でそれを試してみました。 – ng5000