将域对象用作 Dictionary 中的键是一种好习惯吗?
我有一个场景,我使用NHibernate
.
为了执行业务逻辑,我需要查找 Dictionary。我可以使用 Either
IDictionary<int, ValueFortheObject>
或者
Dictionary<DomainObject, ValueFortheObject>
第二种选择对我来说似乎更好
我可以编写更简单的测试用例,也可以在测试用例中使用真实的域对象,而不是使用
Mock<DomainObject>
(如果我选择第一个选项),因为 setter on theId
isprivate
on all domain objects。与建议 int 的注释
Dictionary<Hobbit,List<Adventures>>
相比,代码更具可读性,尤其是在作为参数传递时Dictionary<int,List<Adventures>>
hobbitId
我的问题是:
使用第一个选项比第二个选项有什么优势(我可能会盲目地错过)?
使用第二种方法会有任何性能问题吗?
更新01:
我的域模型实现了这些,并且它们在执行操作时不会发生变异。
使用它们作为键会有性能问题吗?还是我完全错过了这里的重点,性能/内存与使用的键无关?
更新02:
我的问题是
- 如果我使用 Objects 作为键而不是原始类型和WHY / HOW,性能或内存是否会出现任何问题?