Czy warstwa aplikacji (usługi aplikacji), w której dodaję @Stateful, @Stateless, @WebService itp. w DDD? Z poniższego linku wydaje się, że to prawda.

Drugie pytanie: stworzyłem klasę repozytorium, czy wszystkie wywołania metod obejmujące repozytorium powinny być opakowane w usługę aplikacji? Czy mogę używać klas repozytorium bezpośrednio w, powiedzmy, fasolach zapasowych w JSF? Kiedy i co umieścić w warstwie aplikacyjnej. Nie rozumiem, gdzie EJB należą w tej artitechture.

Warstwa aplikacji: ta warstwa koordynuje aktywność aplikacji. Nie zawiera żadnej logiki biznesowej. Nie przechowuje stanu obiektów biznesowych, ale może przechowywać stan postępu zadania aplikacji.

http://www.infoq.com/articles/ddd-in-practice

4
LuckyLuke 17 luty 2012, 11:08

2 odpowiedzi

Najlepsza odpowiedź

Java EE opowiada się za modelem anemicznym, który jest przeciwieństwem DDD. Jeśli chcesz DDD, Twoje podmioty również muszą realizować logikę biznesową, co jest sprzeczne z rozdziałem warstwy usług i podmiotów.

6
Bozho 17 luty 2012, 11:17

Przypuszcza się, że w architekturze DDD Warstwa Aplikacji i wszystkie pozostałe warstwy komunikują się tylko z niższą warstwą systemu. Z tego powodu repozytoria zawijania usługi aplikacji, ale jeśli używasz inyection zależności, możesz ponownie użyć wszystkich swoich repozytoriów w warstwie usługi aplikacji

Prawdziwa praca AppService polega na koordynowaniu operacji między innymi usługami lub repozytoriami lub inkluzywnymi usługami domenowymi.

W twoich podmiotach musi być logika biznesowa tylko o twoich własnych podmiotach. Zawsze przestrzegaj zasady pojedynczej odpowiedzialności (http://www. developerfusion.com/article/137636/taking-the-single-responsibility-principle-seriously/).

Mam nadzieję, że będę pomocny

0
Pablo Rodríguez 6 grudzień 2012, 23:09