针对生成的pojos实施策略模式

时间:2013-04-10 14:52:47

标签: java hibernate validation strategy-pattern

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

我们添加了一个名为Gamer的新表,其中包含通常的用户资料(地址名称为phone等)。它与已建立的Customer表(也包含地址名称phone#etc)无关,但验证步骤中有很多共享行为。

我认为应用策略设计模式已经成熟,问题在于客户POJO和游戏玩家POJO不是从任何东西继承而且它们是从独立的无关表中定义的。

我对设计模式很陌生,而且我很谨慎,因为我可能是一个彻头彻尾的笨蛋所以有关我如何前进并分享验证逻辑的任何建议,而不必诉诸于CustomerAddressValidator和GamerAddressValidator类它完全一样。

1 个答案:

答案 0 :(得分:0)

首先要区分游戏玩家是客户,还是游戏玩家和客户都是人。

在这两种情况下,您将拥有一些基类和扩展类。在Hibernate(和JPA)中,有三种处理继承的方法:Single Table,Joined和Table Per Class。所有这三种方法都有它们的优点和缺点,因此您必须根据具体的域问题选择一种方法。有关无效的更多信息,请阅读here(JPA)here(Hibernate)

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

我可以从你的回答中得到你需要的地址验证器,你必须把地址放在基类中。希望这有帮助。