2009-09-02 14 views

Odpowiedz

15

Jeśli Twoja domena jest geograficzna lub polityczna, może to być encja, ale w przeciętnym przypadku kraj to tylko wartość powiązana z takimi adresami. W takim przypadku, w kontekście twojego modelu obiektowego, jest to po prostu wartość.

Jeśli chodzi o przechowywanie, model domeny naprawdę nie obchodzi. Możesz użyć bazy danych, jeśli jest to wygodne, XML, jeśli wolisz, i klasy, jeśli masz zachowanie związane z krajami.

+0

Cóż, jestem super spóźniony, ale jak zaproponować, aby obiekt wartości był "przechowywany"? Przypuszczam, że repozytorium nie wchodzi w rachubę, być może statyczne w wartościach pamięci? –

+0

Obiekt wartości nie będzie zbiorczym katalogiem głównym, więc nie będzie potrzebował własnego repozytorium.Jeśli korzystasz z ORM, obiekt wartości może być odwzorowany na złożone pola w tabeli pod macierzystym agregatem głównym, a nawet, w pewnych okolicznościach, na oddzielnych tabelach, w których jedyną znaczącą tożsamością jest obiekt właściciela. – JasonTrue

10

Jedną z cech jednostki jest to, że ma ona cykl życia, tj. Zmienia się w czasie. Obiekt wartości nie. W rzeczywistości obiekty wartości powinny być niezmienne. Zatem pytanie, które sobie postawisz, brzmi: "Czy obiekt kraju zmienia się z czasem?"

Innym aspektem, który odróżnia obiekty i obiekty wartości, jest to, że dwa obiekty wartości o tych samych właściwościach są takie same. Jeśli więc masz instancję kraju o nazwie "Francja", to jest to to samo jako kolejna instancja kraju o nazwie "Francja", mimo że są to dwa odrębne przypadki (zakładając, że jest to jedyna właściwość danego kraju ze względu na tej dyskusji). Pomyśl o łańcuchach w większości języków, ciąg "fubar" jest równy innemu wystąpieniu ciągu "fubar".

Podmioty natomiast są różne, nawet jeśli mają te same właściwości. Jeden klient o nazwie "John Smith" może nie być tym samym, co inny klient o nazwie "John Smith".

Tak więc biorąc pod uwagę te cechy, powinieneś być w stanie zdecydować. Ponieważ może istnieć tylko jedna "Francja" i nie zmienia się ona z czasem, jest to prawdopodobnie obiekt wartościowy - chyba że aplikacja musi śledzić więcej informacji o kraju, który może się zmieniać z czasem.

+7

Francja jest już w wersji 5.0: http://pl.wikipedia.org/wiki/French_Fifth_Republic;) – MSalters

3

Wyobraź sobie:

Masz inny podmiot - Klient.
Odwołania do encji klienta Obiekt do obiektu.
Masz 2 instancje encji z wypełnionym Kraj obiekty o tej samej wartości (czyli „Francja”)
Usuwasz obiektu kraju od pierwszego podmiotu (lub pierwszego obiektu podmiotowa)

  • jeśli chcą państwo być usunięty za 2-te obiekt jednostka zbyt
    => Kraj jest obiektem jednostka
  • jeśli vant kraj który ma być usunięty tylko dla obiektu 1-te podmiotu
    => Kraj jest obiektem wartość
Powiązane problemy