【轉】編寫高質量代碼改善C#程序的157個建議——建議143:方法抽象級別應在同一層次
阿新 • • 發佈:2017-12-11
init lin 組織結構 blog 直接 ali public str 運行
建議143:方法抽象級別應在同一層次
看下面代碼:
class SampleClass { public void Init() { //本地初始化代碼1 //本地初始化代碼2 RemoteInit(); } void RemoteInit() { //遠程初始化代碼1 //遠程初始化代碼2 } }
Init方法本意要完成初始化動作,而初始化包括本地初始化和遠程初始化。這段代碼中,Init方法內部代碼的組織結構是本地初始化直接運行在方法內部,而遠程初始化代碼卻被封裝為一個方法在這裏被調用。這顯然是不妥當的,應為本地初始化和遠程初始化的地位是相當的。如果遠程初始化代碼作為方法存在,則本地初始化代碼也應該作為方法存在。
所以,上面代碼應該重構為:
class SampleClass { public void Init() { LocalInit(); RemoteInit(); } void LocalInit() { //本地初始化代碼1 //本地初始化代碼2 } void RemoteInit() { //遠程初始化代碼1//遠程初始化代碼2 } }
重構後的代碼看上去清晰明了,所有的方法的抽象級別都在一個層次上,使讀者一眼看上去就知道Init方法完成了什麽樣的功能。
轉自:《編寫高質量代碼改善C#程序的157個建議》陸敏技
【轉】編寫高質量代碼改善C#程序的157個建議——建議143:方法抽象級別應在同一層次