Obiekty/usługi domeny i warstwa logiki biznesowej

Czym są obiekty domenowe i usługi domenowe w architekturze oprogramowania? Nie znam ich ani czym różnią się od warstwy logiki biznesowej?

Author: TylerH, 2011-04-08

4 answers

Różni ludzie używają tych terminów w nieco inny sposób, ale oto moje zdanie:

1)" biznes "i" domena " są mniej więcej synonimami. "Domena" jest nieco bardziej ogólna, ponieważ nie zakłada, że piszesz aplikację biznesową. Jeśli więc piszemy aplikację naukową lub grę, wolimy odnosić się do odpowiedniej części kodu jako do kodu "domenowego", a nie do kodu" biznesowego". Więc w dalszej części tego wyjaśnienia użyję "domeny", ponieważ jest to bardziej Generale.

2) "logika domeny" rozumie zarówno "obiekty domeny", jak i"usługi domeny". Z różnych powodów (technicznych i innych) wiele architektur stosuje projekt, w którym logika domeny jest podzielona na obiekty do przechowywania danych ("Obiekty domeny") i obiekty, które nimi manipulują ("usługi domeny"). Martin Fowler i inni zwrócili uwagę, że to nie jest bardzo OO ponieważ duża część koncepcji OO polega na łączeniu funkcjonalności z danymi, i to jest prawda, ale jest co to jest. Obiekty domeny to dane, a usługi domeny to część do-stuff-with-the-data.

3) w projektowaniu domain-driven chodzi o powrót do prawdziwego projektu oo, więc różne metody usług wracają do obiektów domain tak, że masz obiekty w sensie OO, a nie tak zwane "anemiczne" obiekty. W DDD same obiekty domeny są bardziej wytrzymałe i tworzą logikę domeny. W rzeczywistości nadal mogą istnieć niektóre Usługi domenowe, jest to jednak zazwyczaj mniejsze w DDD niż w bardziej tradycyjnym modelu domeny objects vs. services.

 82
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-11 16:17:04

Warstwa logiki biznesowej nazywana jest również warstwą domeny. Jest to warstwa / warstwa, która obsługuje całą logikę biznesową.

Obiekty domeny i usługi domeny to Klasy, których używasz do budowania warstwy domeny.

 3
Author: Jørn E. Angeltveit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-08 00:42:26

Musimy zrozumieć obowiązki warstwy aplikacji i warstwy domeny (biznesowej), aby móc zrozumieć różnicę. Warstwa domenowa reprezentuje obiekty biznesowe, głównie podmioty z firmy, ewentualnie do pewnego stopnia wyodrębnione, oraz usługi domenowe. Warstwa domeny zmienia się tylko wtedy, gdy zmienia się firma lub zmienia się kontekst domeny w firmie. Warstwa aplikacji "mieszka" na wierzchu warstwy domeny i jest często (najlepiej) oddzielona z warstwy domeny, jak z asp.net aplikacja webowa MVC, gdzie częścią kontrolera jest warstwa aplikacji, a częścią HTML jest warstwa prezentacji. Warstwa aplikacji zmienia się, aby dostosować się do celu danej aplikacji (lub usługi, API, aplikacji itp.)

 1
Author: Andreas R. Munch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-06 08:35:31

Pozwól, że przedstawię ten przykład Scenariusza aplikacji dla przedsiębiorstw, z którym pracowałem, aby wyjaśnić, dlaczego warstwa domeny i warstwa biznesowa zawierają logikę biznesową, ale różnią się od siebie.

Załóżmy, że mam produkt COTS, który jest czystym silnikiem zarządzania sprawami, powiedzmy implementacją OMG CMMN. Cała masa logiki biznesowej w warstwie biznesowej, która współpracuje z wieloma podmiotami z warstwy danych.

Teraz nadal przypuszczam, że mam dwóch klientów, którzy są integratorami systemów, jednym z nich jest budowanie systemu zarządzania sprawami prawnymi i jeden, który chce zarządzania sprawami Opieki Zdrowotnej. oba są zarządzaniem sprawami, ale mają własne warunki domenowe, obiekty, procedury, architektury branżowe itp.

Każdy z nich doda własną warstwę domeny, tak aby mogły pracować w terminach i pojęciach danej domeny biznesowej.

Więc tak, jego zawiera logikę biznesową, ale warstwa domeny jest sposobem hermetyzacji ogólnego biznesu wielokrotnego użytku z konkretnym biznesem.

The "prostsza" Aplikacja, tym bardziej podobny jest model domeny i model danych, a logika biznesowa i logika domeny. Ale gdy zwiększysz "użyteczność" komponentu rozbieżność, ostatecznie obawy są oddzielone.

 0
Author: Chris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-27 17:02:56