我的接口和該接口的具體實現應該分解爲兩個單獨的文件嗎?類文件中的接口
類文件中的接口
回答
如果你想要其他類來實現這個接口,這可能是一個好主意,如果只是爲了清潔。任何看着你的界面的人都不應該每次都看看你的實現。
如果只有一個實現:爲什麼接口?
如果有多個實現:你把其他的實現放在哪裏?
如果通過不同的文件,你的意思是在你的程序集中不同的xxx.cs文件,那麼通常由於我自己的做法,我會說是 - 但這是你使用的家庭標準。如果你只是爲自己編程,那麼我會說這是很好的編程練習,它使一切都變得乾淨和容易閱讀。任何給定文件中的代碼塊越小,就越容易遵循(在合理的範圍內),顯然你可以開始進入部分類,如果不保持統治的話,事情會變得荒謬起來。
通常,我將項目保留在邏輯文件夾結構中,其中部分項目可能分配到DAL或BM文件夾中,並且在那裏我可能有許多邏輯上命名的文件夾,每個文件夾都包含多個文件:一個接口,一個實現和特定於這些的任何助手類。
然而,如果你在一個開發團隊中工作,那麼應該採用你的團隊/內部最佳實踐。
單獨的文件... FTW!您甚至可能希望根據代碼的可擴展性創建單獨的項目/程序集。至少它應該可能位於單獨的名稱空間中。
接口的要點是,使用接口的代碼不關心實現。因此,它們應該儘可能鬆散地關聯,如果它們在同一個文件中,它們將不會是。
但是@balabaster指出,這取決於你的團隊的做法(雖然他們並不總是「最佳實踐」)。
是,對於類,他們是所謂partial class
, 看看link text
一般的經驗法則,是的。一個接口意味着它可以被其他類實現,當它們清楚地處於單獨的文件中時,它更清晰和更容易管理。更重要的是,根據您的應用程序的分離和隔離級別,您甚至希望將您的接口放置在自己的項目中。然後,消費項目將引用接口項目,而不是每個裝配該接口實現的程序集。
是的,即使有人提出反對的論點,例如只有一個實現,或者他/她預見長時間只有一個實現,或者他/她是唯一的用戶/開發人員等。多個實現,多個用戶等,那麼很明顯你會想將它們保存在單獨的文件中。那麼爲什麼只有在一種實現方式下才能對待它呢?
- 1. Android文件IO接口類
- 2. C#引用接口類中的組件
- 3. 從Eclipse中的實體類文件生成接口
- 4. 接口生成器文件中的未知類AVPlayerViewController
- 5. 接口生成器文件中的未知類CPTGraphHostingView
- 6. 接口生成器文件中的未知類MHRotaryKnob
- 7. 接口生成器文件中的未知類「viewControllerName」
- 8. 接口和Java中的類
- 9. C#中的接口類
- 10. java中的類型接口
- 11. 接口中的嵌套類
- 12. java中的gui接口類?
- 13. 閱讀屬性文件中的接口
- 14. 基於接口的類對象中的類文字
- 15. 兩個類似接口的接口
- 16. 在ASP.NET配置文件中存儲接口類型
- 17. 如何從java jar文件中打印類和接口名稱
- 18. 接口類與類
- 19. 編譯器不識別實現文件中的類成員函數類型,但在接口文件中識別
- 20. 類似接口
- 21. 從接口類
- 22. C# - 接口類
- 23. SWIG接口文件問題
- 24. C++/cli接口頭文件
- 25. java中的接口中的抽象類
- 26. Java中的python ==接口中的元類?
- 27. 無法從接口實現類訪問接口文檔
- 28. 指定ListView接口的特定文件類型
- 29. 的Java公共接口和公共類在同一個文件
- 30. 類和接口的頭文件使用Objective-C
爲什麼界面?爲了可測性。嘲笑岩石:) – 2009-01-07 14:57:04
同意,即使只有一個具體的類,它應該接口。不過,我會使用一個單獨的文件。 – ctacke 2009-01-07 14:57:49