1

私には位置があり、位置を識別子として使用するいくつかのエンティティ (地理、バイオームなど) があります。それらにアクセスしたい場合は、その位置でそれぞれを取得する必要があり、コードが繰り返されることになります。一方、「場所」のようなコンテナーであるクラスを作成することもできます。しかし、この場合、たとえば地理を取得するには、デメテルの法則を破る必要があります。

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

これに対する他のアプローチ、または私が見逃している一般的なパターンはありますか? このタイプのオブジェクト (私が説明した方法で位置に関連するもの) は、数か月後に数が増える可能性が非常に高いことに注意してください。

4

1 に答える 1

0

ポジションをIDとして持つのが良い考えかどうかはわかりません

  • エンティティの位置は変更される可能性が高く、識別子が不安定になります。

  • 特定のエンティティの複数のインスタンスを同じ位置に持つことはできません。

一方、「場所」のようなコンテナーであるクラスを作成することもできます。しかし、この場合、たとえば地理を取得するには、デメテルの法則を破る必要があります。

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

基本的に、Location には entity があると言っていますが、これは少し厄介です。エンティティが位置を持っていると言った方がはるかに自然に思えます。どうですか

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

?

于 2012-10-29T12:41:50.620 に答える