• C#与重构(入门)


    C#与代码重构(入门)

      重构(Refactoring)就是通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。

    单从概念少来理解重构可能很抽象,那么通过下面的代码来看就比较好理解了。

    public class Sample

    {

      public static void main(String args[])

      {

        int r=Console.ReadLine();

        r=Convert.ToDouble(r);

        Console.WriteLine(4.0/3*3.14*r*r*r);

        Console.ReadKey();    

      }

    }

    这是一个简单的求球的体积的函数,r为球的半径,然后通过公式计算出结果并打印到显示屏上,但你可以看看,在没有注释的前提下理解这段代码,要花费你多少时间。

    public class Sample

    {

      public static void main(String args[])

      {

        int radius=Console.ReadLine();

        radius=Convert.ToDouble(radius);

        Console.WriteLine(4.0/3*3.14*radius*radius*radius);

        Console.ReadKey();    

      }

    }

    这段代码实现的功能与上面完全一样,但你可以比较一下两段代码的差别,可以看出,就只是把 r 换成了 radius (半径),然后再看你理解这段代码要花费多长的时间,很明显所花的时间要少一些,应为此时你不必去思考 radius 的含义,它就是 半径 ,而上面的那段代码所要表示的意义必须要通过后面的代码才能知道 r 所要表示的含义。

     public class Sample

    {

      public static void main(String args[])

      {

        const double PI=3.141592654;

        int radius=Console.ReadLine();

        radius=Convert.ToDouble(radius);

        Console.WriteLine(4.0/3*PI*radius*radius*radius);

        Console.ReadKey();

      }

    }

    这段代码与上面的区别在于把 3.14 换成了常量 PI ,这样做的好处在于如果代码中多次的出现了 3.14 这个值,那么通过 PI 常量来修改就显得很方便,其次就是便于阅读(比如:本例,通过定义常量 PI 代替公式中的 ∏ ,而不是直接使用其值3.1415.....)

     public class Sample

    {

      public static void main(String args[])

      {

        const double PI=3.141592654;

        int radius=Console.ReadLine();

        radius=Convert.ToDouble(radius);

        double Volume=4.0/3*PI*radius*radius*radius;

        Console.WriteLine(Area);

        Console.ReadKey();

      }

    }

    这段代码又定义了一个新的变量 Volume(体积) 用来标识所求的面积,而不是直接使用公式本身,这样做的好处很明显,使得代码的结构更清晰,可读性增加。

    public class Sample

    {

      public static double VolumeOfBall(double radius)

      {

        const double PI=3.141592654;

        double Area=4.0/3*PI*radius*radius*radius;

        return Area;

      }

      public static void main(String args[])

      {

        int radius=Convert.ToDouble(Console.ReadLine());

        Console.WriteLline(VolumeOfBall(radius));

        Console.ReadKey();

      }

    }

    这段代码通过提取出一个函数 VolumeOfBall() 来封装求球的体积的代码,增加了代码的重用性,而且看函数名就可以理解这个函数的作用,省去了在代码中添加注释的必要,即实现了代码的精简,又使得代码结构更加优上面这个例子就简单解释了什么是代码重构--即调整代码的结构,比如一些常用的数学符号用特定的标识,一些变量在命名是尽量使其可读性更强,能从变量名就可以

      理解这个变量的作用,将一些反复出现的代码段提取成一个函数(方法){方法名也应简单,易读,能从方法名中理解这个方法的功能},尽量少的使用注释,把更多的信息

    整合到代码中(即变量名和函数名以及一些常量名等),这样做的好处是使代码看起来不杂乱,更清晰易读。

      总的来说,重构不仅仅是更改已经编写的代码的结构,而且是一种思想(它指导我们在编写代码时如何使得代码更“优美”)。代码重构的作用很大,好处很多。也许

    从这个例子中看不出来,当然也许你会说通过重构使得这段代码的执行时间变得更长了,效率变低了,但你可以想一下,当你在做一个很大的工程,而这个工程有成千上万

    行代码时,如果不注意使用重构的思想和方法,而单纯的考虑效率,那将会是一个无比复杂的任务,但使用重构,不仅代码更易读,易改,而且节省开发时间。所以学好重

    构对我们以后的编程生涯都是有巨大的好处的。

     

     

     

  • 相关阅读:
    [LeetCode] Valid Palindrome
    [LeetCode] Word Ladder II(bfs、dfs)
    [LeetCode] Word Ladder
    [LeetCode] Longest Consecutive Sequence(DP)
    [LeetCode] Binary Tree Maximum Path Sum(递归)
    [LeetCode] Search in Rotated Sorted Array II
    hadoop streaming map输入文件路径获取
    LeetCode 4. 寻找两个正序数组的中位数
    剑指 Offer 56
    LeetCode 260.只出现一次的数字 III
  • 原文地址:https://www.cnblogs.com/SilentCode/p/4843773.html
Copyright © 2020-2023  润新知