Для объекта, скорее всего, не потребуется деструктор (вам нужен деструктор, только если вам нужно очистить ресурсы, например, указатели, но если вы сериализуете указатель, вы просто напрашиваетесь на неприятности).Вероятно, было бы неплохо иметь некоторые конструкторы синтаксических сахаров, но в действительности ничего не нужно.
Если данные представляют собой просто объект простых данных (POD) для переноса данных, то они являются кандидатом на то, чтобы быть структурой (полностью открытым классом).
Однако, в зависимости от вашего дизайна, вы можете рассмотреть возможность добавления некоторого поведения, например, метода .action (), который знает, как интегрировать данные, которые он переносит, в ваш реальный объект Model;в отличие от фактической модели, интегрирующей эти изменения сама.По сути, DTO можно рассматривать как часть контроллера (вход) вместо части модели (данные).
В любом случае, на любом языке, метод получения / установки является признаком плохой инкапсуляции.Это не ООП иметь геттер / сеттер для каждого поля экземпляра. Объекты должны быть богатыми, а не анемичными .Если вы действительно хотите Anemic Object, пропустите getter / setter и перейдите непосредственно к полной публичной структуре POD;использование getter / setter по сравнению с полностью открытой структурой практически не дает преимуществ, за исключением того, что это усложняет код, поэтому может дать вам более высокий рейтинг, если ваше рабочее место использует строки кода в качестве показателя производительности.