Открытые поля в DTO и объекте Domain - PullRequest
3 голосов
/ 17 марта 2011

Я делаю обзор кода для одного проекта.Эту архитектуру вы можете видеть по следующей схеме:

system architecture

На данный момент DTO - простые POJO и Domains - содержат аннотации Hibernate.Как я знаю, одним из преимуществ использования DTO является то, что вы можете сделать все поля домена как public и удалить весь этот код заглушки с помощью методов получения и установки.Это правильный подход?

Что вы думаете об удалении геттеров и сеттеров из DTO?Также, может быть, есть некоторые профессионалы, внедряющие DTO в Groovy?

Что вы думаете об этом?

Ответы [ 3 ]

5 голосов
/ 17 марта 2011

Я думаю, что модификаторы безопасности все еще могут выполнять некоторую полезную работу на уровне DTO. Большинство полей, безусловно, могут быть помечены как общедоступные, потому что их основные цели - просто установить их на уровне представления. Но некоторые могут быть установлены только определенным образом или иметь другие особые вещи.

Итак, короче говоря, вы можете использовать public для простых полей.

1 голос
/ 17 марта 2011

Я бы использовал JavaBeans, потому что:

  1. Существуют вспомогательные классы с открытым исходным кодом, которые работают с JavaBeans.Например, установка значения свойства, имя которого неизвестно до времени выполнения.

  2. Иногда необходимо выполнить простое преобразование данных.Методы получения и установки могут сделать это прозрачно.

  3. Вы можете проверить «синтаксис» данных.Например, генерировать исключение NullPointerException, если поле никогда не должно быть нулевым.

В любом случае, не смешивайте открытые поля с JavaBeans.Это запутает всех.

0 голосов
/ 19 марта 2011

Единственным недостатком обнародования полей в dto является то, что это может привести к недоразумениям для других членов команды.С помощью getter и setters вы можете набрать get * и подождать, пока ide предложит вам все поля.

...