我正在爲我的一個應用程序編寫日誌記錄服務,但我相信很多其他應用程序會使用它。在這種情況下,讓應用程序擴展一個類並讓所有日誌記錄默認啓用(因爲某些日誌記錄,如應用程序入口點和退出點,無論任何代價都是必需的),還是讓原始類實例化一個新的日誌記錄對象,然後在需要的地方放置日誌語句?Java:實例化還是繼承?
1
A
回答
4
實例化一個新的日誌記錄對象。你的物體畢竟不是伐木工,是嗎?
如果從記錄器繼承,你還得到了以下問題
- 你的對象可以作爲記錄這可能不是什麼它是爲
- 你不能從其他類繼承
- 你不能輕易地登錄交換機的政策,尤其是在運行時
一般情況下,一個人應該非常小心,當談到拉拔T之間的泛化wo類。
2
而不是創建一個新的日誌服務 - 爲什麼不使用其中的一個日誌框架呢?所有應有的尊重 - 他們將比任何你寫的更好的測試和更好的文件記錄!
我不會沿着繼承路線走下去,這會使你在早期階段與一個可能發展和改變的階級聯繫起來。
+0
你說得對。我最好使用現有的日誌記錄庫。我之所以想到這個唯一的原因是因爲它不是一個完整的日誌記錄服務,而且還提供了一些項目特定的功能。無論如何,謝謝你的回覆。 – Legend 2009-11-17 23:45:11
0
在OOP中,您必須遵守對象收集數據和邏輯的規律。
如果您的對象必須執行一些任務(服務)或操作某些數據,那麼沒關係。但它不是一個記錄器。
您應該將事件觸發到另一個服務或對象來執行日誌。
還要小心你的對象如何知道記錄器......注入,組合,工廠......這是關於你的日誌框架和你的對象任務。
相關問題
- 1. 繼承 - 實例化問題
- 2. 我應該實例化一個集合還是從集合繼承?
- 3. 實例化一個繼承對象
- 4. C++繼承和實例化依賴類
- 5. 實例化繼承構造函數
- 6. 模板實例化不會「繼承」
- 7. 實例化一個繼承INotifyPropertyChanged的
- 8. Java繼承覆蓋實例變量
- 9. Java繼承 - 實例變量覆蓋
- 10. JavaScript繼承實例屬性?
- 11. 繼承的Java單例
- 12. Java克隆繼承示例
- 13. Java的繼承示例
- 14. 我應該使用從可實例化類繼承的單例類還是另一種更好的模式?
- 15. UIButton的子類還是繼承自UIControl?
- 16. Rails佈局,多重還是繼承?
- 17. 單表繼承還是多態?
- 18. 繼承界面還是Impliment界面?
- 19. Java實例化
- 20. 實體框架繼承:TPT,TPH還是none?
- 21. 初始化Rails中繼承模型的實例方法值
- 22. 在HyLang中繼承並實例化type.namedTuple的子類型
- 23. 在繼承類中實例化抽象類對象
- 24. 繼承和實例化有什麼區別?
- 25. ViewModelProviders java.lang.RuntimeException試圖實例化繼承AndroidViewModel的類
- 26. 我如何實例化這個繼承類
- 27. 實例化圖像:繼承,分隔的類或其他?
- 28. 繼承已經實例化的基本對象
- 29. 帶繼承的動態類和方法實例化
- 30. 繼承UIView - 丟失實例變量
謝謝。我認爲這些問題對我來說很清楚。 – Legend 2009-11-17 23:44:25