zoukankan      html  css  js  c++  java
  • 【转】编写高质量代码改善C#程序的157个建议——建议143:方法抽象级别应在同一层次

    建议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个建议》陆敏技

  • 相关阅读:
    python--初识面向对象
    python--内置函数, 匿名函数
    P2249 【深基13.例1】查找
    P5143 攀爬者
    P1116 车厢重组
    P1059 明明的随机数
    P1152 欢乐的跳
    字符数组
    nth_element(取容器中的第n大值)
    费曼学习法
  • 原文地址:https://www.cnblogs.com/farmer-y/p/8022073.html
Copyright © 2011-2022 走看看