0

我正在为几个不同的数据库表编写解析器。我们在 Eclipse 中使用 Hibernate,并且我们制作hbm.xml了与我们的表相对应的映射文件,以便我们的 .java 文件根据表生成。

我们添加了一个名为 Gamer 的新表,其中包含常用的用户内容(地址名称电话号码等)。它与已建立的 Customer 表无关(还包含地址名称 phone# 等),但在验证步骤中有很多共享行为。

我认为这对于应用策略设计模式来说已经成熟了,问题是 Customer POJO 和 Gamer POJO 没有从任何东西继承,并且它们是从独立的不相关表中定义的。

我对设计模式很陌生,我很担心我可能是个十足的笨蛋,所以任何关于我如何前进和分享验证逻辑的建议,而不必求助于 CustomerAddressValidator 和 GamerAddressValidator 类完全相同的事情。

4

1 回答 1

0

首先,您必须区分 Gamer 是 Customer,还是 Gamer 和 Customer 都是 Person。

在这两种情况下,您都会有一些基类和扩展类。在 Hibernate(和 JPA)中,有三种处理继承的方法:单表、联接和每类表。这三种方法各有利弊,因此您必须根据您的具体领域问题选择一种。有关 ineritance 的更多信息,您可以在此处(JPA)此处(Hibernate)阅读。

之后,您将能够为基类编写单个验证器(如果验证所需的所有值都放在基类中)并为基类和扩展类调用该验证器。

从您的回答中我可以看出您需要地址验证器,所以您必须将地址放在基类中。希望这有帮助。

于 2013-04-10T15:07:20.107 回答