2012-07-04 15 views
9

Czy dobrą praktyką jest przyjmowanie obiektów hibernacji do warstwy prezentacji? lub Czy musimy odwzorować wszystkie właściwości obiektów na obiekt wartości, a obiekt wartości będzie używany w interfejsie użytkownika?DTO hibernacji i odwzorowanie obiektu wartości

Proszę dać mi znać zalety i wady obu appoaches.

Kiedy należy użyć czego?

+1

Obiekty DTO i wartości to to samo. DTO oznacza * Obiekt transferu danych *. Trwały obiekt Hibernacji nazywa się * entity *. –

Odpowiedz

13

to, co nazywasz DTO, to jednostki w ORM-ach. Zazwyczaj są częścią modelu domeny, który zawiera logikę biznesową i zawiera zwykle więcej danych, niż potrzeba do renderowania poszczególnych widoków. Moja osobista zasada

Stosować podmioty w widokach, gdy nie ma warstwy przejściowej między DAL i widok i tam jest trochę logiki biznesowej:

  • Zalety:
    • jednego modelu
    • nie ma potrzeby mapowania między modelami
    • łatwiejsze korzystanie z leniwego ładowania
  • Wady:
    • każda zmiana w modelu oznacza zmianę poglądów
    • wiele disadvatages z warstwy nośnej patrz niżej

Mapa podmiotów do DTOs kiedy jest warstwa nośna i/lub dane viewdata różnią się od jednostek lub agregują wiele różnych jednostek.

  • Zalety:
    • DTOs/widoki nie trzeba zmieniać, gdy występują zmiany do modeli
    • unikać wysyłania jednostki, na drucie, który ma mnóstwo problemów (lazy loading wyjątki, o wiele niepotrzebnych danych przesyłanych, wystawiać sensownej informacji. ..)
    • Model ma mniej obowiązków (serializacja), co ułatwia ich ponowne wykorzystanie (np. przetwarzanie backend)
  • Wady:
    • więcej klas napisać
    • kod tłumaczyć podmiotom DTOs
0

Można również uzyskać nieco więcej osiągów i zużycia RAM efektywności jeśli wystawisz swoje jednostki na różne warstwy i moduły. To zależy od Ciebie, ale nigdy nie widziałem firmy, a nawet aplikacji średniej wielkości, która ujawnia podmioty spoza ich projektu/warstwy usługi Data Services.

Powiązane problemy