技术资源
C#的简单重构
发布时间:2015/9/30 9:15:00 来源地址:本站原创
重构(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 Area=4.0/3*PI*radius*radius*radius;
Console.WriteLine(Area);
Console.ReadKey();
}
}
这段代码又定义了一个新的变量 Area(面积) 用来标识所求的面积,而不是直接使用公式本身,这样做的好处很明显,使得代码的结构更清晰,可读性增加。
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() 来封装求球的体积的代码,增加了代码的重用性,而且看函数名就可以理解这个函数的作用,省去了在代码中添加注释的必要,即实现了代码的精简,又使得代码结构更加优上面这个例子就简单解释了什么是代码重构--即调整代码的结构,比如一些常用的数学符号用特定的标识,一些变量在命名是尽量使其可读性更强,能从变量名就可以理解这个变量的作用,将一些反复出现的代码段提取成一个函数(方法){方法名也应简单,易读,能从方法名中理解这个方法的功能},尽量少的使用注释,把更多的信息整合到代码中(即变量名和函数名以及一些常量名等),这样做的好处是使代码看起来不杂乱,更清晰易读。
总的来说,重构不仅仅是更改已经编写的代码的结构,而且是一种思想(它指导我们在编写代码时如何使得代码更“优美”)。代码重构的作用很大,好处很多。也许从这个例子中看不出来,当然也许你会说通过重构使得这段代码的执行时间变得更长了,效率变低了,但你可以想一下,当你在做一个很大的工程,而这个工程有成千上万行代码时,如果不注意使用重构的思想和方法,而单纯的考虑效率,那将会是一个无比复杂的任务,但使用重构,不仅代码更易读,易改,而且节省开发时间。
单从概念少来理解重构可能很抽象,那么通过下面的代码来看就比较好理解了。
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 Area=4.0/3*PI*radius*radius*radius;
Console.WriteLine(Area);
Console.ReadKey();
}
}
这段代码又定义了一个新的变量 Area(面积) 用来标识所求的面积,而不是直接使用公式本身,这样做的好处很明显,使得代码的结构更清晰,可读性增加。
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() 来封装求球的体积的代码,增加了代码的重用性,而且看函数名就可以理解这个函数的作用,省去了在代码中添加注释的必要,即实现了代码的精简,又使得代码结构更加优上面这个例子就简单解释了什么是代码重构--即调整代码的结构,比如一些常用的数学符号用特定的标识,一些变量在命名是尽量使其可读性更强,能从变量名就可以理解这个变量的作用,将一些反复出现的代码段提取成一个函数(方法){方法名也应简单,易读,能从方法名中理解这个方法的功能},尽量少的使用注释,把更多的信息整合到代码中(即变量名和函数名以及一些常量名等),这样做的好处是使代码看起来不杂乱,更清晰易读。
总的来说,重构不仅仅是更改已经编写的代码的结构,而且是一种思想(它指导我们在编写代码时如何使得代码更“优美”)。代码重构的作用很大,好处很多。也许从这个例子中看不出来,当然也许你会说通过重构使得这段代码的执行时间变得更长了,效率变低了,但你可以想一下,当你在做一个很大的工程,而这个工程有成千上万行代码时,如果不注意使用重构的思想和方法,而单纯的考虑效率,那将会是一个无比复杂的任务,但使用重构,不仅代码更易读,易改,而且节省开发时间。
上一篇: ORM的优缺点 (2015-08-11)
下一篇: SQL小技巧 (2015-09-30)