各位道友,進來討論個介面設計問題!
目前公司關於介面的設計主要有兩種形式:
public interface BussinessInterface{
||第一種方式
//此種設計是透過返回Result物件來實現的,客戶端透過檢視Result來判斷
當前的業務操作是否成功,一般會在Result類裡面包括resultCode(表示返回
的錯誤程式碼)和resultMessage(表示返回的錯誤資訊)
public Result<BussinessModel> bussinessOperation(...);
||第二種方式
//另外一種方式是透過異常的形式,客戶端透過捕獲異常來了解到介面呼叫是否成功,
以及失敗的原因等資訊
public BussinessModel bussinessOperation(....)throws BussinessException1,BussinessException2;
}
以上兩種方式各有各的好處:
第一種方式:
優點:因為異常的傳遞是會有一定的消耗的,因此第一種方式能使得系統節省一定的消耗。
缺點:介面不夠明確,客戶端需要根據結果碼來判斷業務操作是否成功。
第二種方式:
優點:介面設計明確,客戶端可以很清楚的指導呼叫此介面可能會出現什麼樣子的問題
缺點:異常的傳遞需要一定的消耗
在遠端呼叫的時候,需要客戶端也要保持一份關於業務異常的jar,同時也會帶來異常序列化開銷。
我起個頭,大家說說自己的看法。各抒己見。
public interface BussinessInterface{
||第一種方式
//此種設計是透過返回Result物件來實現的,客戶端透過檢視Result來判斷
當前的業務操作是否成功,一般會在Result類裡面包括resultCode(表示返回
的錯誤程式碼)和resultMessage(表示返回的錯誤資訊)
public Result<BussinessModel> bussinessOperation(...);
||第二種方式
//另外一種方式是透過異常的形式,客戶端透過捕獲異常來了解到介面呼叫是否成功,
以及失敗的原因等資訊
public BussinessModel bussinessOperation(....)throws BussinessException1,BussinessException2;
}
以上兩種方式各有各的好處:
第一種方式:
優點:因為異常的傳遞是會有一定的消耗的,因此第一種方式能使得系統節省一定的消耗。
缺點:介面不夠明確,客戶端需要根據結果碼來判斷業務操作是否成功。
第二種方式:
優點:介面設計明確,客戶端可以很清楚的指導呼叫此介面可能會出現什麼樣子的問題
缺點:異常的傳遞需要一定的消耗
在遠端呼叫的時候,需要客戶端也要保持一份關於業務異常的jar,同時也會帶來異常序列化開銷。
我起個頭,大家說說自己的看法。各抒己見。
相關文章
- 討論個有關模組化設計的問題
- AI面臨的五個蛋白質設計問題,Nature找了一群專家來討論AI
- Hibernate 一個更新問題的 討論
- 想請教一下各位一個介面寫法問題
- laravel 事件系統 問題討論Laravel事件
- 求一.NET算術演算法.歡迎朋友們都進來討論討論.演算法
- 來個大佬看看介面用例設計
- 近期討論過的一些MySQL問題MySql
- 請多討論問題,而不是解決方案 - frankel
- K君關於“IT 新人就業方向問題“討論就業
- 討論下 RESTful 風格 API 的路由設計RESTAPI路由
- 關於IC設計的一次討論
- React 進階設計與控制權問題React
- 有關介面測試的用例設計問題
- python 詭異問題求助各位大哥Python
- 主題討論,第六組
- 資料分析主題討論
- 關於網站設計的一點點討論網站
- 專案需求討論-Vlayout來快速構建及擴充套件複雜介面套件
- 一個關於月球車的筆試題--求討論筆試
- 給各位PHP程式設計師十點未來的建議PHP程式設計師
- TRIZ理論在洗碗機設計中應用探討
- 請教各位一個關於websocket協議開發的問題Web協議
- 請教各位大佬一個問題,flutter APP 怎麼抓包呢?FlutterAPP
- <討論>2020年 的 python 介面自動化框架Python框架
- 簡單探討C#中GUI程式設計的標準事件問題C#GUI程式設計事件
- 討論TableLayoutPanel載入緩慢和閃爍問題解決方案
- 討論
- 糟糕的軟體設計:幻想出來的問題
- 遞迴中的遞推與迴歸以及返回值和函式儲存的問題(以階乘問題進行討論)遞迴函式
- 各位大神,幫忙看個問題,mac wda 環境搭建,開啟 http://192.168.20.30:8100/inspector,未顯示出手機介面MacHTTP
- Python 設計和歷史的 27 個問題Python
- 討論下一個token預測時,我們可能正在走進陷阱
- 再來兩個小問題
- 如何用一個例項來探討嵌入式軟體架構設計架構
- SAP CRM WebClient UI上以html格式顯示note的問題討論WebclientUIHTML
- 北京網路行業協會組織討論VPN相關問題行業
- 非同步程式設計方案進化論非同步程式設計
- 從問題到程式 程式設計與C語言引論pdf程式設計C語言