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

  • 相关阅读:
    v-for给img的src动态赋值问题
    关于vue+axios上传文件的踩坑分析
    关于nth-of-type和nth-child的关系
    关于fetch
    关于移动端适配
    golang变量作用域问题-避免使用全局变量
    grpc-gateway:grpc转换为http协议对外提供服务
    google的grpc在golang中的使用
    golang中的rpc包用法
    homebrew常用命令
  • 原文地址:https://www.cnblogs.com/farmer-y/p/8022073.html
Copyright © 2011-2022 走看看