当前位置:  开发笔记 > 编程语言 > 正文

您如何重构此条件以使用多态?

如何解决《您如何重构此条件以使用多态?》经验,为你挑选了1个好方法。

我刚看完YouTube上的Google清洁代码视频(请参阅链接,第一篇文章),关于if从代码中删除语句并使用多态.

观看视频后,我看了一下我在观看视频之前编写的一些代码,并注意到我可以使用这种方法的地方,主要是多次实现相同类型逻辑的地方.举个例子:

我有一些像这样的代码.

public int Number
{
    get
    {
        string returnValue;
        if (this.internalTableNumber == null)
             returnValue = this.RunTableInfoCommand(internalTableName,
                                                    TableInfoEnum.TAB_INFO_NUM);
        else
             returnValue = this.RunTableInfoCommand(internalTableNumber.Value,
                                                    TableInfoEnum.TAB_INFO_NUM);
        return Convert.ToInt32(returnValue);
    }
}

RunTableInfoCommand的作用并不重要,但主要的是我有许多具有完全相同的属性的属性,if唯一改变的是TableInfoEnum.

我想知道是否有人可以帮助我重构这一点,以便它仍然做同样的事情但没有任何if陈述?



1> Tim Jarvis..:

在看到其中一些(技术上正确的)响应后,这里只是一个注意事项,只是摆脱一个If语句不应该是你唯一的目标,目标应该是使你的代码可扩展,可维护和简单,如果这意味着摆脱一个if语句,很棒,但它本身不应该是一个目标.

在您提供的代码示例中,并且在不了解有关您的应用程序的更多信息的情况下,假设您不会延长过去测试的空值,我认为If(或者甚至是三元)是更易于维护的解决方案坦率地说.

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有