保存域对象的域数据结构?

时间:2012-10-28 15:08:18

标签: oop domain-driven-design encapsulation ddd-repositories law-of-demeter

我有一个位置,以及一些使用位置作为其标识符(地理位置,生物群系等)的实体。如果我想得到它们,我需要通过它的位置检索每一个,这将导致重复的代码。另一方面,我可以创建一个容器类,就像“位置”一样。但是,在这种情况下,为了检索地理(例如),我需要打破德米特定律。

Repository.getLocation().getGeography().getHighestPeak();

有没有其他方法,或者我缺少的常见模式?请记住,这种类型的对象(与我描述的位置有关)几个月后很可能会变大。

1 个答案:

答案 0 :(得分:0)

我不确定将职位作为身份证明

  • 实体的位置可能会发生变化,导致标识符不稳定。

  • 您将无法拥有位置相同的实体的多个实例。

  

另一方面,我可以创建一个容器类,如a   “地点”。但是,在这种情况下,要检索地理(例如),我   需要打破德米特定律。

     。

Repository.getLocation()getGeography()getHighestPeak();

你基本上是说 Location有一个实体,这有点尴尬。说实体有一个位置似乎更自然。 <怎么样

GeographyRepository.getGeographyByPosition(new Position(...)).getHighestPeak();