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