NHibernate和不同实现的接口

时间:2011-07-16 19:58:22

标签: c# nhibernate class-structure

我最近开始使用C#和NHibernate,所以这对我来说都是新手。

在我正在构建的应用程序中,我需要计算英国邮政编码之间的距离。 其中一种方法是使用网格参考和毕达哥拉斯距离。 另一种方法是使用谷歌地图来获得距离。

我有一个方法Ipostcode的界面getDistance(IPostcode p) 并且根据实现,类将与不同的表进行通信。

对于网格引用我将有GridRefPostcode对象和DB表:(字符串)邮政编码,(长)北,(长)东。

对于谷歌地图,我将使用GoogleMapsPostcode对象和数据库表:(字符串)邮政编码,(字符串)其他邮政编码,(双倍)距离。

类人物将有一个字段IPostcode,然后我将根据这两个类提供的getDistance()来计算距离。

现在的问题是:如何在NHibernate中映射这个类关系?我如何使界面适应映射?

                   Person
                      ^
                      |
                  IPostcode ( Interface )
                   ^     ^
                   |     |
      GridRefPostcode    GoogleMapsPostcode

甚至可能吗?我有一种直觉,我的班级结构需要彻底改变,但这似乎是最合理的解决方案:如果我在Google提供的2个邮政编码之间有距离,我会使用它,如果没有,我会下台GridReferences。

非常感谢任何想法!

0 个答案:

没有答案