2013-05-31 25 views
7

Potrzebuję poznać różnicę między typem metod (w sensie logiki biznesowej), które powinny znajdować się wewnątrz obiektów warstwy domeny, DAO i usługi.Domeny, DAO i warstwy usług

Na przykład, jeśli buduję małą aplikację internetową do tworzenia, edytowania i usuwania danych klientów, o tyle, o ile rozumiem w obiekcie warstwy domeny, powinienem dodać metody, które obejmują właściwości obiektu Get/Set Customers, na przykład (getName, getDOB, setAddress, setPhone ... itd.).

Teraz próbuję się dowiedzieć, jakie metody należy zastosować w obiektach warstw DAO i Service.

Z góry dziękuję za poświęcony czas i wysiłek.

Odpowiedz

8

Mówiąc ogólnie (nie hibernacji lub specyficzne wiosna):

Warstwa DAO zawiera zapytań i aktualizacji, aby zapisać warstwę domeny do swojego magazynu danych (zazwyczaj relacyjne DB, ale nie musi być). Użyj interfejsów, aby oddzielić DAO od rzeczywistego magazynu danych. Nie zdarza się to często, ale czasami chcesz zmienić datastore (lub użyć mocks, aby przetestować swoją logikę), a interfejsy to ułatwiają. Będzie to miało metody takie jak "zapisz", "getById", itp.

Warstwa usługi zazwyczaj zawiera logikę biznesową i steruje interakcją między warstwą domeny a DAO. Miałoby to wszelkie metody sensowne dla danej domeny, takie jak "verifyBalance" lub "calculTotalMileage".

+0

Czy możesz podać mi przykłady metod w warstwie DAO? O ile rozumiem od ciebie w warstwie Service obiekty będą miały metody takie jak verifyBalance, calculTotalMileage, które jak daleko widzę są wszystkie metody obliczeń – MChan

+0

@MChan - DAO zajmuje się głównie aktualizowaniem, tworzeniem, usuwaniem i pobieraniem danych z Baza danych. W przypadku nie-obiektowego magazynu danych, wykonałby on również odwzorowanie z utrwalonych danych (wiersze i kolumny w RDB) na obiekt oraz z obiektu na utrwalone dane. Nanmy metod mogą być dowolne, ale zazwyczaj są to "zapisz", "usuń", "zapytanie", "zaktualizuj". Warstwa usługi nie musi mieć metod obliczeniowych. Te metody byłyby wszystko, co Twoja firma musi określić lub zrobić. – lreeder

6

DAO: metody "opakowywania" do "zawijania" wywołań JPA lub JDBC, SQL lub noSQL lub cokolwiek innego w przypadku dostępu do systemów DB.

Domena: wywołania logiki biznesowej skorelowane z jednym typem obiektów (obiekty domeny).

Usługa: wywołania logiki biznesowej skorelowane z grupą typów podmiotów lub grupą kilku podmiotów tego samego typu.

(nie jestem pewien, o języku, przepraszam .......)

To znaczy: warstwa Service jest „większy” niż warstwy domeny, jest często blisko frontonu, często nazywa lub używa kilku obiektów domeny.

obiektów domeny hermetyzacji najwięcej rzeczy do jednej części domeny (dlatego nazywane są D.O.)

DAO jest po prostu czegoś techniczny, czasami potrzebne, czasem nie. Gdy używane są prawdziwe obiekty domeny, często "repozytoria" służą do ukrywania dostępu do systemów baz danych lub dodawania specjalnej funkcjonalności db.

front-end -> metoda serwisowa 1 -> d.o. A typu X, d.o. B typu X, lista

+0

jeśli używam Hibernate, to jaki jest pożytek z metod obiektów DAO?Mam na myśli, w jaki sposób mogą mi pomóc w dostępie do danych? – MChan

Powiązane problemy