0
我有一个父实体Person和两个子实体:Caller和Employee。这两个孩子分享了很多领域,所以我实现了JPA继承与单个表策略和鉴别器列。到目前为止这么好。 为了处理这些对象,我有一些处理数据库操作的服务类,我有如下方法:getCallerById();或getEmployeesByFirstName()。 save()方法也在这些服务类中。问题是,当我想保存一个雇员或一个调用者时,我得到了很多重复的代码(对于所有共享属性),所以为了防止这个我创建了第三个服务:PersonService()以处理常见功能。但是现在我不知道如何使用这个服务来重用尽可能多的代码。 也许在PersonService()有类似jpa继承和服务类中的代码重用
public Boolean save(Person p){
if (p instanceOf Caller){
Caller c = new Caller();
c.setCallerSpecificProperty("XXX");
}
if (p instanceOf Employee){
Employee c = new Employee()
c.setEmployeeSpecificProperty("YYY");
}
c.setOtherCommonParameter("ccc");
//............
}
或你怎么劝我来处理这个问题??? 感谢
感谢肯特,这确实是一个很好的和简单的想法。我想我没有为树木播种木材:)。漂亮而优雅的解决方案 –