Nie jest przestarzałe. Zależy to od architektury aplikacji, jeśli należy zastosować wzór DTO. Na przykład, gdy tworzysz usługi sieciowe (używając JAX-WS lub JAX-RS), powinieneś wysłać DTO za pośrednictwem swoich metod sieciowych, aby aplikacja kliencka C# lub Python mogła je zużywać, a twoja metoda sieciowa nie powinna zwracać obiektu, którego klasa ma Adnotacje w stylu hibernacji, pamiętajcie, że w innych językach nie można utworzyć encji z tymi adnotacjami lub inną logiką biznesową wewnątrz.
EDYCJA (na podstawie komentarza): To zależy od architektury oprogramowania. Na przykład pracuję nad projektem SOA i używamy DTO dla warstwy usług i warstwy prezentacji. Im głębiej wewnątrz, używamy nawet DTO do obsługi komunikacji z bazami danych w usługach, używamy tylko SP do komunikowania się z DB, więc żadne Hibernacja ani żadne inne narzędzia ORM nie mogą tam pracować, moglibyśmy użyć Spring DAO, a ta struktura również używa DTO. W wielu aplikacjach można znaleźć wiele wzorców DTO.
Więcej informacji, że byłoby świetnie na to pytanie:
EDIT 2: Innym źródłem informacji, które wyjaśnią Głównym powodem wykorzystania wzornictwa dto jest, wytłumaczyć Martin Fowler
Wniosek: DTO użytkownika nie jest to anty wzór. DTO mają być używane tylko wtedy, gdy musisz przekazać dane z jednego podsystemu do innego i nie mają standardowego lub standardowego sposobu komunikowania się.
Tak, w takim scenariuszu rozumiem korzystanie z DTO. Wysyłasz wyniki do DTO. Ale do zastosowania wewnętrznego aplikacji DTO nie są zbyt przydatne, prawda? – Thihara
@ Thihara odpowiedź edytowana na podstawie Twojego komentarza –
Według twojego pierwszego, jak to jest anty wzór używany do obejścia faktu, że fasole encji nie można szeregować. W przypadku ORM podstawowy problem nie istnieje. – Thihara