在我的应用程序中,有实体。但有些实体需要实现接口。 例如, 我有“课程”,“课程”实体。我创建了“CourseService”,“LessonService”接口和“CourseServiceImpl”,“LessonServiceImpl”。 但问题是我的“课程”和“课程”应该实现“应付款”界面。 我该怎么办?复制我的实体?
谢谢,
答案 0 :(得分:1)
不是真的。我假设你的Payable
接口有方法pay()
。在您的实体中实现它。如果实施不同,那你很好。如果它们相同,您可以将其提取到另一个对象中,并将其封装在Course
和Lesson
中。或者不是 - 重复代码本身并没有错 - 只有代码难以改变和扩展。我们有DRY原则 - 不要重复自己。我更喜欢喝酒 - 如果有必要,请重复吗,凯? :)(不知道是谁创造了它)。
无论如何,我建议尽可能少地使用服务代码。如果您的实体可以自己履行职责并且不将其内部结构暴露给某些服务,那么您将拥有更高的cohesion。马丁福勒explains it quite well。另外,this。