我最近設計了一個API來包裝數據存儲實現,並允許其他開發人員使用此API爲其數據建立索引並根據關鍵字查詢數據庫。我在查詢方法中使用了Response/Reply模式,因爲Jaroslav Tulach提到當需要添加參數時,它可以避免保持更改API接口(實際API設計的第97頁)。其他開發人員認爲使用方法重載是更好的方法。你能分享你在設計中使用兩種不同方法的經驗嗎?以下是我和其他開發者之間的對話。響應/回覆模式與API設計中的方法重載
Me: 響應/回覆模式看起來很乾淨,因爲越來越多的參數可以通過API進化添加到API接口中。在接口中有超過10多種重載方法可能會讓其他開發人員感到困惑。他們如何弄清楚使用哪種方法?
其他開發者的論點: 隨着API的發展,你不應該繼續添加參數。如果您不斷在API接口中添加參數,則您的API設計存在問題。結果,重載方法的數量很少,所以它不會打擾開發人員。更重要的是,Java框架中常常會出現大量的重載方法實現。
Me: 很容易管理以前版本API的後兼容性。您不必更改界面。更改界面將打破其他開發人員現有的代碼。
其他開發者的說法: 如果我改變實現,添加參數,其他開發人員應當根據新的API更新他們的代碼。如果新的參數是可選的,爲什麼要添加它。
不確定是否每個人都明白「回覆/回覆模式」的含義。我不。你能提供一些參考嗎? – Sameer
@Sameer:他做過:'實際API設計中的第97頁' – jgauffin
響應/答覆模式。 http://en.wikipedia.org/wiki/Request-response –