Agrega nesneleri almak nasıl?

1 Cevap php

DDD, Deposu etki alanı nesneleri kaydetme ve alma ilgilenir ve aynı zamanda Agrega Roots koleksiyonu olarak hizmet vermektedir. Benim sorum bu çocuk varlıklar için bilgi bir Agrega (en DB diyelim) nasıl geri alabilirim nerede temel kural Deposu sadece Agrega Roots (ana nesne) ve çocuk nesneler değil koleksiyon tutmak gerekir? Olduğunu

Örneğin:

User (parent object) Orders (child object)

Kullanıcı etki alanı nesnesi, kullanıcı tabloda depolanır ve Siparişler başka bir tabloda saklanır.

Temel olarak, bir etki alanı nesnesini alınırken bu gibi olabilir:

<?php
$userRepos = new UserRepository();
$user = $userRepos->find($userId);
?>

O halde nasıl alt nesne (Siparişler) Kullanıcı işletmenin Kullanıcı agrega parçası olarak olarak almak olabilir mi?

1 Cevap

Ben Depoları sadece Agrega Roots başvurular tutsamda Agrega Roots çocuklarının nesneleri (Değer nesneler) başvurular tutacaktır inanıyoruz. Yani Agrega nesneleri üreten Fabrikalar Agrega Kökler ve Değer nesneler arasındaki bu "iç" referansları inşa edecek, ve sonra sadece Agrega Kök Depoları yerleştirilir gerek. Sonra bir basitçe olsun size (bir basit alıcı API aracılığıyla) Deposu dışında bir Agrega Kök çekin zamanlar bu çocuk nesneleri alınıyor.