业务系统里面常见的方法接口设计
?
1.???????? 簡單的方法
?void DoSth(args)
??? {
?????????? // do some thing here
?????????? // throw some error here if the method was not run correctly?
??? }
?????? 方法沒有返回值,也沒有特別的錯誤標示,一般用在一些不易出錯的 所以如果方法有可能執行不成功的時候,則可以在方法里面拋出異常,在調用的地方用catch捕捉。或者根本不捕捉方法里面可能產生的異常,從而讓異常跟著堆棧往上層爬,一直到合適的位置才進行捕捉。這種情況通常用于對方法中的異常沒有十足的把握處理、不想在本方法中處理異常、有意向上層屏蔽底層異常的情況。很多設計這主張“底層拋出異常,上層處理異常”的設計原則,在這種設計原則的指導下,用的最多的方法設計就是這種。
?
以下的幾種方法都要求盡量捕捉方法中可能存在的Exception。
?
2.???????? 返回字符串/數字
string/int DoSth(args)
{
?????? // do some thing here
?????? // return some message if the method was not run correctly
}
執行某個方法,然后把結果用字符串/數字的形式返回,比如返回“OK”/1表示執行成功,返回“不能預料的錯誤”/-1等信息表示沒有正確執行
?
3.???????? 返回布爾值
bool DoSth(args)
{
?????? // do some thing here
?????? // return true or false to tell the caller if the method was run correctly
}
執行某個方法,然后把結果用bool值的形式返回,true表示執行成功,false表示執行失敗。一般用在只關心結果,不在乎為什么是那個結果或者導致結果的原因已經很明確的時候。
?
4.???????? 返回布爾值和錯誤信息
bool DoSth(args, out string message)
{
?????? // do some thing here
// return true or false to tell the caller if the method was run correctly
?????? // set the error message to “message” if exception or error occurred.
}
?????? 執行某個方法,然后把結果用bool值的形式返回,如果出錯,將錯誤信息設置到一個out 的參數中。這種方法適合于那些比較復雜,可能出現多種意外的方法,執行中出現的意外可以通過message來查看,而結果可以通過返回值來查看。調用方可以只在乎結果,也可以在乎原因。
?
5.???????? 兩個方法合作(或者一個方法和一個屬性合作的方法)
string errorMessage;
bool DoSth1(args)
{
?????? // do some thing here
?????? // return true or false to tell the caller if the method was run correctly
?????? // set the error message to “errorMessage” if exception or error occurred.
?
}
bool DoSth2(args)
{
?????? // do some thing here
// return true or false to tell the caller if the method was run correctly
?????? // set the error message to “errorMessage” if exception or error occurred.
}
?
string GetLastError()
{
?????? return errorMessage;
}
?
方法本身只返回結果,但是當結果為false的時候,可以通過GetLastError來獲取最后一個錯誤信息。這種設計適合于類里面存在很多可能出錯的方法的情況,比如上面的DoSth1,DoSth2,這樣就不必要為每個方法添加out參數,在實際中用得比較多。另外,當程序中存在循環,而又不想因為循環的某一次發生錯誤而終止程序的時候,也可以采取這種辦法。
事實上,每一種方法都有其用武之地,?問題的關鍵在于我們使用一種約定,最好的辦法就是在同一個系統里面盡量只使用其中的一種,以避免維護和后續開發上的麻煩。
轉載于:https://www.cnblogs.com/QuitGame/archive/2005/06/30/183732.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的业务系统里面常见的方法接口设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机吞吃蛇游戏的设计与开发
- 下一篇: 晚上不睡觉,搞的一个例子《JS实现动画》