4

私は最近 C# と NHibernate を使い始めたので、これはすべて初心者です。

私が構築しているアプリケーションでは、英国の郵便番号間の距離を計算する必要があります。アプローチの 1 つは、グリッド参照とピタゴラス距離を使用することです。もう 1 つの方法は、Google マップを使用して距離を取得することです。

IpostcodeメソッドとのインターフェースがgetDistance(IPostcode p) あり、実装に応じて、クラスはさまざまなテーブルと通信します。

グリッド参照には、GridRefPostcode オブジェクトと DB テーブル ((string)postcode、(long)northing、(long)easting) を用意します。

Google マップの場合、GoogleMapsPostcode オブジェクトと DB テーブル: (string)postcode、(string)otherPostcode、(double)distance を使用します。

クラス Person にはフィールドがあり、両方のクラスから提供されたIPostcode距離に基づいて距離を計算します。getDistance()

問題は次のとおりです:NHibernateでこのクラス関係をどのようにマッピングするのですか? インターフェイスをマッピングに適合させるにはどうすればよいですか?

                   人
                      ^
                      | |
                  IPostcode (インターフェース)
                   ^ ^
                   | | | |
      GridRefPostcode GoogleMapsPostcode

それは可能ですか?クラス構造を完全に変更する必要があるという直感がありますが、これが最も合理的な解決策のようです。Google が提供する 2 つの郵便番号の間に距離がある場合はそれを使用し、利用できない場合は降格します。 GridReferences。

どんなアイデアでも大歓迎です!

4

0 に答える 0