DTO, DAO и DCO. Что такое DCO? - PullRequest
13 голосов
/ 17 апреля 2009

Мой поиск значения DCO оказался совершенно бесплодным, поэтому я решил спросить здесь. В моем Java-приложении есть много классов, таких как EmployeeDetailsDto, EmployeeDetailsDao, но недавно я также наткнулся на EmployeeDetailsDco. Кто-нибудь знает, что означает DCO?

Ответы [ 6 ]

21 голосов
/ 17 апреля 2009

DTO = Объект передачи данных

DAO = Объект доступа к данным

DCO = Динамически настраиваемый объект ?

Из статьи

Динамически настраиваемый объект (DCO)

объект, реализация которого может постепенно изменяться после его запуска

  • состоит из элементов интерфейса
  • публичная функция
  • частная функция
  • личные данные вместе со всеми функциями доступа
  • функции-члены поддерживают постепенные изменения элементов интерфейса
  • добавление, удаление или изменение
4 голосов
/ 20 апреля 2009

Я только что говорил с парнем, который раньше помнил, что это означает. Это довольно иронично, что он больше не делает. И другие люди здесь, в этой компании, тоже нет.

Объяснение, которое я смог найти, состояло в том, что это в основном DTO, но они хотели использовать DCO, чтобы различать DTO, используемые Hibernate, и DCO, используемые внешними системами, в данном случае LDAP.

Так что я полагаю, что смысл DCO действительно может быть, как предполагает Бхушан, объектом переноса данных или чем-то подобным, и в этом случае он действительно должен был быть просто еще одним названием для DTO. Ответ принят. Спасибо за ваше время! Я думал, что DCO - это общепринятая аббревиатура, широко используемая разработчиками, но она оказалась именно такой ... извините.

Редактировать


Ответ - Объект Контейнера Данных, для заинтересованных. Я вызвал достаточно шума в компании, поэтому в конце концов коллега отправил электронное письмо местному создателю термина DCO, и, если кто-то все еще захочет это выяснить, он будет обозначать Объект контейнера данных .

1 голос
/ 17 апреля 2009

Все, что я могу сказать, это то, что объект переноса данных - это не то, что имеет в виду DCO, поместите «объект переноса данных» в google, и он не возвращает никаких попаданий.

Таким образом, условия должны быть неправильными.

Хорошо, попробовал поискать "Data Objects DCO"

и получил результат , который предполагает, что DCO означает «Объекты изменения данных»

Я предполагаю, что DCO - это объект, который содержит изменения, "diff", данных объекта.

1 голос
/ 17 апреля 2009

Рефакторинг Dtos и сбросьте суффикс DTO.

Возможно, вы захотите изменить Dao на Store или что-то подобное.

Во-первых, EmployeeSetails без Dto / dco в конце, очевидно, представляет собой класс значений, содержащий значения, относящиеся к сотруднику. Без другого термина очевидно, что это не утилита, которая должна называться как g EmployeeDetailsUtil / Helper и т. Д.

Ваш дао должен называться EmployeeSetailsStore, потому что он описывает его функцию хранилища EmployeeSetsils. Как или где он их помещает, не имеет значения, они скрыты в вашем коде. Если вы действительно хотите, вы можете назвать его HibernateEmploteeDetaileStore и т. Д., Если он использует Hibernate. Ваш интерфейс должен называться EmployeeSetailsStore. Разработчики или этот интерфейс будут использовать имя интерфейса в качестве начала и добавлять технологию impl к этому базовому имени.

Последнее, но не менее важное: здесь String является значением массива char, но добавление Dto в этом случае уродливо и глупо.

Только действительно известные аббревиатуры, такие как Url. В конце концов, магазин никогда не будет сбивать с толку, пока все аббревиатуры, которые вы упомянули, не проясняют ситуацию, и в этом случае введено слияние и это время.

Если вы измеряете набор текста, используя то, что я предложил, вы на самом деле печатаете меньше символов, и все становится понятнее. всегда стремитесь к ясности, а не к краткости, в конце концов, мы все быстрые печатники, так что несколько дополнительных символов. В конце концов, мы тратим больше времени на чтение, понимание и т. Д., Чем на набор текста, поэтому несколько дополнительных символов в имени класса вовсе не приведут к снижению производительности ...

Не экономьте ... делайте это правильно с самого начала.

0 голосов
/ 17 апреля 2009

Это может быть командный объект.

0 голосов
/ 17 апреля 2009

Я никогда не слышал о DCO, но является ли объект, переносящий данные, просто еще одним названием для DTO?

...