добавление префикса DTO / POCOS - соглашения об именовании?

StackOverflow https://stackoverflow.com/questions/1075504

Вопрос

простой вопрос на самом деле, я хотел узнать, какие соглашения об именовании кто-нибудь использует в DTO / POCOS ....

На самом деле я не хотел ставить префикс, похожий на венгерскую нотацию..я сбежал от этого!.

Но мои имена dto конфликтуют с моими фактическими именами возвращаемых объектов, и хотя они находятся в другом пространстве имен, это все еще немного сбивает с толку..

Мне было интересно, какие соглашения об именовании кто-нибудь применяет к этому

например, мой объект customer называется Customer

и я делаю сопоставление с dto ...который является Клиентом..я думал о клиенте DtoCustomer ..

Не уверен

Кто - нибудь ?

Это было полезно?

Решение

Я предпочитаю использовать для этого пространства имен.Использование псевдонимов пространства имен для этого делает его еще более понятным.

Это создало бы код, который выглядит следующим образом:

Customer myCustomer = new Customer();
Dto.Customer dtoCustomer = ....;

Если я работаю полностью на уровне DTO, я все еще могу работать с "Клиентом" на этом этапе.

Другие советы

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

  • Потребительский лидер
  • Информация о клиенте
  • Клиент с недавними заказами
  • Клиентская накладная

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

Мне нравится CustomerDTO больше, чем DtoCustomer.Нравится, когда они сортируются рядом друг с другом.

Но именование также может зависеть от использования DTO.Например, в ASP.NET MVC я часто вызываю DTO, который отправляется в представление для CustomerViewModel.

Обычно я добавляю DTO в подобных ситуациях.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top