Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Domain drive design, pytanie o agregaty
coolos
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 15.04.2009

Ostrzeżenie: (0%)
-----


Witam,

Mam mały problem odnośnie rozplanowania klasy NEWS (klasy aktualności) oraz klasy NEWS_CATEGORY (kategorii aktualności).

Jako że:
- news posiada jedną kategorię do której może być przypisany,
- jedna kategoria posiada wiele newsów czyli zachodzi relacja jeden do wielu.

nie wiem czy agragetem głównym "aggregate root" w tym przypadku będzie klasa NEWS czy też NEWS_CATEGORY.

Myślę że powinno to wyglądać mniej więcej tak jak poniżej ale pewien nie jestem:

  1. class NEWS{
  2.  
  3. //jakies pola opisujace newsa
  4. private $id;
  5. private $title;
  6.  
  7. //tutaj agregat kategorii
  8. private $category;
  9. }
  10.  
  11.  
  12. class NEWS_CATEGORY{
  13. //jakies pola opisujace kategorie
  14. private $id;
  15. private $name;
  16.  
  17. //tutaj kolekcja newsow
  18. private $news_collection;
  19. }


Nie wiem też czy lepiej tworzyć repozytorium zarówno dla newsów jak i kategorii czy też stworzyć wspólne (podobnie ma się sprawa z fabryką). Wydaje mi się że skoro kateogie newsów tyczą się wyłącznie newsów to można zrobić wspólne repozytorium.

Liczę na jakieś wskazówki,
Pozdrawiam
Go to the top of the page
+Quote Post
Inscure
post
Post #2





Grupa: Zarejestrowani
Postów: 61
Pomógł: 4
Dołączył: 18.09.2010

Ostrzeżenie: (0%)
-----


To zależy od wielkości tych klas. Jeżeli zrobisz wszystko w jednej i będziesz musiał dawać prefiks "category" dla metod dotyczących kategorii newsów by się nie pogubić, to lepszym rozwiązaniem jest zrobienie tego w sposób jaki zaprezentowałeś. Zaś w przypadku, gdy cała klasa ograniczy się do 5-6 metod, to byłby to nieco przerost formy nad treścią, aczkolwiek modyfikacja byłaby łatwiejsza. Takie moje skromne zdanie.


--------------------
eXtreme-Fusion CMS - polski, darmowy system zarządzania treścią z rozbudowanym wsparciem technicznym.
Go to the top of the page
+Quote Post
coolos
post
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 15.04.2009

Ostrzeżenie: (0%)
-----


Szkoda że właściwie nie ma żadnego dobrego artykułu w internecie który na przykładzie jakiegoś systemu newsów lub czegoś podobnego wyjaśniałby zasadę funkcjonowania DDD.

Najlepsze na jakie trafiłem to te poniżej:
- http://www.typo3-media.com/blog/mvc-news-example.html za ukazanie ciekawego modelu dziedziny.
- http://blog.fedecarg.com/2009/03/11/domain...-architectures/ chyba najlepszy art. w internecie na ten temat.
Go to the top of the page
+Quote Post
destroyerr
post
Post #4





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

Ostrzeżenie: (0%)
-----


To chyba dlatego nie ma, że system newsów to nie jest dobra dziedzina dla DDD. Zdecydowanie można wykorzystać building blocks, ale cała metodologia to trochę za dużo.

Co do Twojego problemu to mam pytanie dlaczego założyłeś, że kategoria to encja a nie value object? Gdybyś z kategorii zrobił VO nie tracisz nic, wiele zyskujesz i (z mojego punktu widzenia) odzwierciedlasz dziedzinę.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 04:23