zoukankan      html  css  js  c++  java
  • 重构:一个简单的IF语句

    private static void OldMethod(BusinessObjectInfo parentBOInfo)
    {
        IList<BusinessObjectsPropertyInfo> bosPropertyInfo = parentBOInfo.BOsPropertyInfos;
        if ((bosPropertyInfo.Count == 1) && (null != parentBOInfo.TreeChildPropertyInfo))
        {
            //action one
        }
        else if (((bosPropertyInfo.Count > 1) && (null != parentBOInfo.TreeChildPropertyInfo))
            || ((bosPropertyInfo.Count > 0) && (null == parentBOInfo.TreeChildPropertyInfo)))
        {
            //action two
        }
    }
    private static void NewMethod(BusinessObjectInfo parentBOInfo)
    {
        IList<BusinessObjectsPropertyInfo> childrenProperties = parentBOInfo.BOsPropertyInfos;
    
        var childrenPropertiesCount = childrenProperties.Count;
        if (childrenPropertiesCount <= 0)
        {
            return;
        }
    
        var hasTreeChild = null != parentBOInfo.TreeChildPropertyInfo;
    
        if (hasTreeChild)
        {
            if (childrenPropertiesCount == 1)
            {
                //action one
            }
        }
        else
        {
            //action two
        }
    }

        以上两种写法并不完全等价(你能找出来吗?),不过就当时的业务逻辑来说,这样写是没错的。

       上面的写法,还是错了,应该是这样:

    private static void NewMethod2(BusinessObjectInfo parentBOInfo)
    {
        IList<BusinessObjectsPropertyInfo> childrenProperties = parentBOInfo.BOsPropertyInfos;
    
        var childrenPropertiesCount = childrenProperties.Count;
        if (childrenPropertiesCount <= 0)
        {
            return;
        }
    
        var hasTreeChild = null != parentBOInfo.TreeChildPropertyInfo;
    
        if (hasTreeChild && childrenPropertiesCount == 1)
        {
            //action one
        }
        else
        {
            //action two
        }
    }
  • 相关阅读:
    MVC 中创建自己的异常处理
    ajax 跨域解决方法
    值传递,引用传递
    值类型,引用类型 结合 栈,堆的理解
    SQL中 ALL 和 ANY 区别的
    SQL中的逻辑运算符
    使用函数输出两个数的最大值
    九句话,送给正在奋斗的我们,每天读一遍
    C语言函数调用简简介
    优秀项目经理的七个习惯
  • 原文地址:https://www.cnblogs.com/zgynhqf/p/1624442.html
Copyright © 2011-2022 走看看