首页 > 解决方案 > 我应该复制实体模型吗?

问题描述

在我的应用程序中,有实体。但有些实体需要实现接口。例如,我有“课程”、“课程”实体。我创建了“CourseService”、“LessonService”接口和“CourseServiceImpl”、“LessonServiceImpl”。但问题是我的“Course”和“Lesson”应该实现“Payable”接口。我应该怎么办?复制我的实体?

谢谢,

标签: javajpaoptimizationentitypersistence

解决方案


并不真地。我想你的Payable界面有方法pay()。在您的两个实体中实现它。如果实现不同,那很好。如果它们相同,您可以将其提取到另一个对象中并将其封装在Courseand中Lesson。或者不是 - 复制代码本身并没有错 - 只有难以更改和扩展的代码。我们有 DRY 原则——不要重复自己。我更喜欢 DRINK - 如果需要,请重复,Kay?:) (虽然不确定是谁创造的)。

无论如何,我建议在服务中使用尽可能少的代码。如果您的实体可以自己履行职责并且不将其内部结构暴露给某些服务,您将拥有更高的凝聚力。Martin Fowler解释得很好。另外,.


推荐阅读