1. 程式人生 > >【轉】編寫高質量代碼改善C#程序的157個建議——建議143:方法抽象級別應在同一層次

【轉】編寫高質量代碼改善C#程序的157個建議——建議143:方法抽象級別應在同一層次

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:方法抽象級別應在同一層次