菜鸟的C#学习之旅——重构

版权声明:本文为博主原创文章,未经博主允许不得转载。 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"旺";
    }
}

这样是不是简单了很多呢?把每次都需要重复的代码将其放入到父类当中去,子类的冗余是不是消除了很多啊,其实一目了然。

五、总结

其实上面只是从一方面对重构进行了简单的理解,其实它在我们的写代码过程中远远不是这些,当然,我觉得我们具有这样的思想远比懂得一到两种重构的方法重要的多。如果我有讲的不到位的地方还望大家多多的指出。本人在此感激不敬。

猜你喜欢

转载自blog.csdn.net/whc888666/article/details/84634917