Value Object VS Data Transfer Object (VO VS. DTO)

Решил разобраться и рассказать, в чем отличие этих паттернов.

Функционал DTO VO
простой объект (контейнер данных) да да
объект можно сериализовать, т.е. объект не должен иметь препятствий для сериализации, например: не должен иметь бесконечно вложенные ссылки на самого себя в каком-то поле да да
имеет поле с значением уникально идентифицирующим данный объект да нет
может содержать get-еры, set-еры (их наличие хороший тон в сочетании с приватными полями) да нет
обязан содержать только публичные поля (логически аналогичен массиву) нет да
является моделью (содержит бизнес-логику - обрабатывает находящиеся в нем значения полей) нет нет

Вот и разобрались.

Однако, новичок спросит, а зачем мне это знать, как это применить и будет прав. А применять это нужно так. Вы начали писать свою программу, и функциям в Вашей программе нужно как-то обмениваться данными, например одним из выше способом.

Оцени публикацию:
  • 3,7
Оценили: 3


Предложения и пожелания:

 

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2019 YaPro.Ru

Лебеденко Николай Николаевич
Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter