版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/whc888666/article/details/84634917
目录
一、定义
重构:重构就是通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理。提高软件的扩展性和维护性。
我个人的理解是:优化代码结构,消除或避免不必要的冗余。
二、使用标准
“事不过三”原则
强调代码中的一个值,一段代码,相同的功能,如果出现了两次以上,就要提取为宏、变量、方法、模块,以方便重用。
三、举例:(不用重构的情形)
如果我们不使用重构将会怎么样?
Class Animal//父类
{
Public virtual string Shout()
{
Return"";
}
}
Class Cat:Animal//子类继承父类
{
Public override string Shout()
{
string result = "";
for (int i =0; i <ShoutNum; i++)
{
result+="喵";
}
return "我的名字叫:"+result;
}
}
Class Dog:Animal//子类继承父类
{
Public override string Shout()
{
string result = "";
for (int i =0; i <ShoutNum; i++)
{
result+="汪";
}
return "我的名字叫:"+result;
}
}
这种方式怎么样?现在才两个小动物,如果现在有1000个小动物小参加这个活动呢?难道我们需要写1000遍吗?答案是当然不...我们需要将这些不必要的冗余全部去掉,那我们怎么去掉这些冗余呢?这就是今天我要讲到的重构,它可以起到优化代码结构,消除不必要的冗余。下面看我对这个代码的处理:
四、举例:(使用重构的情形)
我们使用重构方式,看代码是不是简单了很多。
Class Animal
{
Public string Shout()
{
string result = "";
for (int i = 0; i<shoutNum;i++)
{
result += getShoutSound()+",";
return"我的名字叫:"+result;
}
}
protected virtual string getShoutSound()
{
return"";
}
}
Class Cat:Animal
{
protected override string getShoutSound()
{
return"喵";
}
}
Class Dog:Animal
{
protected override string getShoutSound()
{
return"旺";
}
}
这样是不是简单了很多呢?把每次都需要重复的代码将其放入到父类当中去,子类的冗余是不是消除了很多啊,其实一目了然。
五、总结
其实上面只是从一方面对重构进行了简单的理解,其实它在我们的写代码过程中远远不是这些,当然,我觉得我们具有这样的思想远比懂得一到两种重构的方法重要的多。如果我有讲的不到位的地方还望大家多多的指出。本人在此感激不敬。