几个子类扩展了我的抽象父类。这些子类几乎没有相同的属性,例如日期。所以我的问题是我应该在抽象类中还是在每个子类中声明这些属性(日期)的setter和getters? 在一个子类中,它是其他“日期”中的“发布日期”,所以我应该“投”它到所有日期?良好实践 - 操作设计
0
A
回答
2
取决于。许多建议使用构图(即:有一个)而不是继承(即:是)。而且大多数情况下,这取决于你想要达到的目标。两种方法都有优点和缺点。
如果你想把这些属性放到基类中,那么所有的类都有这些属性,但你说的不是所有的都有。作为一个很好的设计,如果你没有完全填充一个对象,也就是说,你留下一些空字段或空的字段,目的是不好的。你的对象应该完全填充。
所以你可以做的是,你可以将包装属性转换为行为(另一个对象)并将它们委托给想要使用这些行为的类。
使用你的直觉,无论哪种感觉都对,并简化你的生活。
1
如果您要说所有的子类都使用相同的字段来实现相同的目的,那么通过所有的方法将它添加到父类中,并节省一些重复。如果你认为子类为了不同的目的而使用'date'字段(你提到它们被称为不同的名字),那么你应该在子类中声明它自己,并且不要超级类型的字段用于多于1目的(否则从长远来看这会非常混乱)。
相关问题
- 1. REST - 良好的设计实践
- 2. AngularJS的良好实践
- 3. 良好的编程实践
- 4. 对象良好实践
- 5. Codeigniter 2良好实践
- 6. 接口良好实践
- 7. ApplicationController上的良好实践
- 8. 良好的代码实践
- 9. AngularJS - 表单良好实践
- 10. 基于Websocket的API设计的良好实践
- 11. 任何良好的面向对象设计实践的来源?
- 12. 动态类实例:良好实践?
- 13. 实体框架良好实践
- 14. 使用实体框架时,什么是良好的设计实践
- 15. 封装全局JavaScript良好实践?
- 16. Javafx良好的编程实践
- 17. 记录所有操作:良好的设计模式?
- 18. 用于记录每个操作的良好设计模式
- 19. 暂存数据库良好实践
- 20. C头文件 - 良好实践
- 21. 谷歌地图良好实践问题
- 22. Java - 改进2请求良好实践
- 23. 在.NET良好实践中Querystrings?
- 24. 了解Java的良好实践rmi
- 25. 良好的泛型设计
- 26. “被动”对象是否被认为是一种良好的设计实践?
- 27. 良好的软件实践 - 获取和设置方法
- 28. 软件良好实践 - 设置并获取方法
- 29. EventHandler设计实践
- 30. mysql:设计实践