簡體   English   中英

在哪里聲明接口?

[英]Where to declare interfaces?

我正在開發一個具有不同組件的項目(想象一下打印機模塊,成像模塊等)。 在這個項目中,所有接口都在一個Interfaces-assembly中聲明(想象一下Interfaces.dll帶有接口IPrinterModule,IImagingModule等)。

因為我是一名牛仔編碼員;)我不得不問SO社區這是否是最佳實踐或如何以更好的方式完成?

這對我來說聽起來不錯 - 有一個單獨的接口程序集是很常見的,特別是對於執行大量插件的系統。

很可能你正在使用這些接口在正交組件之間創建松散耦合的橋(順便說一下,這對你有好處)。 以真正模塊化的方式執行此操作的唯一方法是為這些接口設置單獨的程序集,以便實現接口或引用它的每個類型實際上使用相同的接口類型。 真正唯一的另一種選擇是將整個系統中的所有內容編譯成一個程序集。

我們采用了類似的方法。 您肯定希望將接口與其(當前)實現分開,因此將來很容易提供不同的實現。 Martin Fowler將其描述為分離接口模式。

如果接口彼此依賴(IPrinter是否返回IImageXXX?)那么你真的需要它們在同一個程序集中以避免循環構建依賴。

如果有循環引用,那么將所有接口保持在單獨的程序集中將對您有所幫助。 在研究工作流程的過程中,我在過去幾天閱讀了許多代碼示例(來自microsoft,codeproject和其他站點),接口在實現它的程序集中聲明。

就像IPrinterModule一樣,將在實現的程序集中聲明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM