Имена объектов домена - PullRequest
1 голос
/ 10 января 2009

Для доменных сущностей, должны ли имена свойств предшествовать имени сущности? И.Е. У моего класса Warehouse есть свойство WarehouseNumber. Должно ли это свойство называться WarehouseNumber или просто Number?

Мысли

Ответы [ 4 ]

3 голосов
/ 10 января 2009

Я предпочитаю не использовать префикс, мне легче набрать текст и сделать его более читабельным контекст того, что сущность почти всегда очевидна.

2 голосов
/ 10 января 2009

Подумайте о концепциях, которые вы представляете, о контексте, в котором они появляются, и их относительной частоте.

В этом случае части данных Warehouse и Number. В контексте Warehouse, Number имеет правильную квалификацию. За пределами Warehouse, WarehouseNumber будет иметь соответствующую квалификацию, т.е. Order.WarehouseNumber.

Warehouse.WarehouseNumber, тогда будет излишним.

1 голос
/ 10 января 2009

Я бы никогда не префиксировал их в коде. У вас всегда должны быть значимые имена переменных, свойств и методов, делающие префикс избыточным.

var currentWarehouse = warehouseService.Find(id);

var number = currentWarehouse.Number;

или

var number = order.Warehouse.Number;

Я менее определился с вопросом, когда дело доходит до хранения их в базе данных. Есть что сказать:

select   *
from     dbo.Warehouse
where    WarehouseId in (
             select   WarehouseId
             from     ...
         )
0 голосов
/ 10 января 2009

Это один из тех объектно-реляционных импедансов, которые не совпадают с mofos. В ОО, наверняка, префикс имени сущности, похоже, не подходит. Однако в RDMBS префикс объекта однозначно идентифицирует атрибут и рекомендуется избегать этого:

ВЫБРАТЬ PostCode --OMG !!! С какого стола я пришел! C.PostCode или S.PostCode ??! ??!

FROM Заказчик C

INNER JOIN Поставщик S ON C.PrefferredSupplierID = S.SupplierID

Мой совет - выбирать соглашение произвольно и грубо придерживаться его. Это соглашение, чтобы сэкономить время в конце концов! Вероятно, не имеет значения ..:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...