幾個子類擴展了我的抽象父類。這些子類幾乎沒有相同的屬性,例如日期。所以我的問題是我應該在抽象類中還是在每個子類中聲明這些屬性(日期)的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:設計實踐