假设我们希望代表一个人
public interface Person {
String getFirstName();
String getLastName();
}
这是用 JPA 实现的(我错过了代码,因为它非常平庸)
现在,我希望有一个模型,它的接口是带有 setter 方法的人员接口的扩展
public interface PersonModel extends Person {
void setFirstName(String firstName);
void setLastName(String lastName);
}
并且我实现了 Model 接口的具体实现(我将跳过它,因为它再次非常平庸)
在这样做时,我意识到从 Person 扩展的 PersonModel 并没有那么大的意义,因为“PersonModel 不是一个人”
将 PersonModel 转换为 Person 也是不“正确的”。
实现这一点的正确方法是什么 - PersonModel 不能从 Person 继承并重新定义方法,但这意味着额外的维护。
我可以将方法提取到另一个基本接口 -> PersonBase(?) 并从中扩展 Person (未定义其他方法)和 PersonModel 。
如果我沿着上述路径前进,命名基本接口的最佳方法是什么?
我使用接口的主要原因之一(除了它帮助我思考一切如何工作/组合在一起的事实)是这样可以很容易地有不同的实现层(JPA2/NoSQL 驱动程序等)
这不是真正使用的代码,所以请原谅任何语法错误/拼写错误 - 我只是为了这个问题而写的。
想法/指导/建议表示赞赏。