DDDリポジトリは常に集計を返し、すべてが値オブジェクトとエンティティである必要がありますか?DDDリポジトリとREST
たとえば、タイプとアイテムを持つInvoiceオブジェクトがあります。
Invoice
--Id
--Issuer
--InvoiceType
--Items
データは4つのSQLテーブルに保存されます。
Invoices (FK to invoice type, FK to issuers),
InvoiceTypes
Items(fk to Invoice)
Issuers
リポジトリは常にそれで凝集体を返す必要がある場合は、完全な状態だ、私が50枚の請求書を取得し、唯一のIDとIssuerNameを表示する必要がある場合InvoiceTypeはやアイテムを含むようにやり過ぎのビットです。
InvoiceRepository
{
//should this also fetch InvoiceTypes and items from SQL, or i need separate invoice model for this
public List<Invoice> FetchForListing(int page, int take);
}
ohを参照してください。私は、集合体に結びついているリポジトリについて誤って理解していました。私はいつもInvoice Domainオブジェクトを返さなければならないという信念を持っていましたが、実際にはビジネス上の必要に応じた表現が可能です。この場合、請求書とは何ですか?ドメインモデル、エンティティ、値オブジェクト – Robert
InvoiceSummaryはデータ/クエリの単なる読み込みモデルです。ビジネスルールは含まれていませんので、DDD名を適用しようとする心配はありません – tomliversidge
技術的にはおそらく値オブジェクトです。これは読み取り専用ですデータは不変でなければなりません。私は@tomliversidgeに同意する価値がないことに同意する。 – VoiceOfUnreason