我有一個非常簡單的應用程序,它需要一個數據源。目前它是一個平面文件,但稍後它會更改爲數據庫。我需要您在這裏使用繼承或接口的意見。哪一個會更好,爲什麼?我的意見是使用接口,因爲它會很靈活,但是我也可以將數據源作爲一個抽象類。在Java中使用繼承或接口的情況?
5
A
回答
8
您將使用抽象類,其中有所有實現都需要訪問的通用功能。在這裏,數據庫和文件的實現是如此不同,它們沒有任何共同之處,所以我會使用接口。
2
當只有訪問數據的方法和類型保持不變時,才使用接口。當需要共享的東西之間會有共同的代碼/功能時,您可以使用繼承。
在這種情況下,看起來一個接口就足夠了,利用一個沒有公共代碼的抽象類將是一種浪費。一個經常被遺忘的使用接口的好處是你可以一次實現多個接口,而你只能從一個父類繼承。
0
在這種情況下,使用接口會更方便。
通過抽象出實現細節,您可以提供平面文件和數據庫支持都可以使用的通用接口。當需要改變時,只有實現這個接口的代碼會改變,而不是使用它們的任何代碼。
0
我會去抽象類。學習純面向對象的方法時,類將會非常小,只有必需品,然後讓子類包含對象的所有參數和值。
抽象類中爲了讓你準備好用於你計劃的數據庫的例子是一個int
的唯一ID。
0
正如你在文章中提到的那樣,最好創建一個接口來定義可以在你的數據源上完成的操作。對於每個單一數據源,您可以創建一個實現該接口的類。
要在平面文件上操作,您可以實現類FileDataWrapper implements DataWrapper
,其中類FileDataWrapper實現可以在數據源上執行的操作。稍後,當您更改爲數據庫時,只需實現類DatabaseDataWrapper implements DataWrapper
。
0
您可以使用DAO設計模式和Factory。您可以在Advanced DAO programming和Core J2EE Patterns - Data Access Object中找到更多信息。
相關問題
- 1. 泛型或繼承/ Java中的接口?
- 2. Java接口繼承
- 3. 多繼承或多接口
- 4. 接口和繼承java
- 5. Java接口和繼承
- 6. 在這種情況下可以使用繼承嗎? (Java)
- 7. 繼承的情況下,類
- 8. Java集合接口中的繼承
- 9. Java的繼承註解在接口
- 10. Rails繼承資源使用情況
- 11. 使用繼承的接口在TDictionary
- 12. 接口繼承
- 13. 如何在接口中使用java實現多繼承?
- 14. C中的接口繼承#
- 15. 接口繼承接口
- 16. 在JOIN中繼承使用UNION的情況下 - MySQL
- 17. 的Groovy + Java接口繼承問題
- 18. Java的多重繼承接口
- 19. Java繼承接口的過載方法
- 20. EF4:使用接口的Compex繼承
- 21. C++接口繼承
- 22. F#繼承接口
- 23. C#繼承/接口
- 24. 從接口繼承
- 25. C#接口繼承
- 26. ninject繼承接口
- 27. 繼承自通用接口
- 28. oop:在具體情況下的構成或繼承
- 29. 多繼承,繼承接口和implmentation
- 30. IComparable <T>繼承或接口?
但它仍然是有意義的創建數據源作爲接口,然後讓FileDataSource實現它? – Phoenix 2012-07-16 16:59:09
@Phoenix:我不明白你在問什麼。如果你有一個接口,當然必須實現它。 – 2012-07-16 17:08:19