对于域名实体,应该使用实体名称作为属性名称的前缀吗? I.E.我的类仓库有一个属性WarehouseNumber。该属性应该命名为WarehouseNumber还是简单的Number?域名实体名称
想法?
对于域名实体,应该使用实体名称作为属性名称的前缀吗? I.E.我的类仓库有一个属性WarehouseNumber。该属性应该命名为WarehouseNumber还是简单的Number?域名实体名称
想法?
我不喜欢使用前缀,我发现它更容易输入,而且更易读,实体的内容几乎总是显而易见的。
想想你代表的概念,它们出现的环境以及它们的相对频率。
在这种情况下,这些数据是Warehouse
和Number
。在Warehouse
的情况下,Number
是合格的。在Warehouse
之外,WarehouseNumber
将被适当地限定,即Order.WarehouseNumber
。
Warehouse.WarehouseNumber
然后,将是多余的。
我永远不会在代码中加前缀。您应该始终具有有意义的变量,属性和方法名称,使前缀变得冗余。
var currentWarehouse = warehouseService.Find(id);
var number = currentWarehouse.Number;
或
var number = order.Warehouse.Number;
我少对此事的决定,当谈到将它们存储在数据库中。有什么可说的:
select *
from dbo.Warehouse
where WarehouseId in (
select WarehouseId
from ...
)
这是这些对象关系阻抗不匹配mofos之一。在OO中,肯定实体名称的前缀似乎不适合。但是,在RDMBS中,实体前缀唯一标识一个属性,并鼓励避免这种情况:
SELECT PostCode --OMG !!!我来自哪张桌子! C.PostCode或S.PostCode ??!??!
FROM 客户C
INNER JOIN供应商小号 ON C.PrefferredSupplierID = S.SupplierID
我的建议是随便挑一个公约,它大致坚持。它是一个节约时间的公约!可能没关系.. :)