首页 > 其他分享 >重构之合理的方法名称

重构之合理的方法名称

时间:2022-11-19 16:45:56浏览次数:54  
标签:重构 payClientAppIdList List parentGoods 名称 new 合理 MerchantId merchantIdList

最好的代码注释是代码本身,当需要给代码加文本注释时,应先检查一下代码本身是否清晰合理的表达了代码的意图。合理的方法名称,有助于增强代码的表达力。

看一个名称不合理的方法:

        /// <summary>
        /// 检查商品的收款账户信息
        /// </summary>
        /// <param name="shoppingCart"></param>
        private void CheckPayClientAppId(ShoppingCartVM shoppingCart)
        {
            List<string> payClientAppIdList = new List<string>();
            List<string> merchantIdList = new List<string>();

            foreach (ShopGoodsVM item in shoppingCart.ShopList)
            {
                foreach (ShoppingGoodsVM parentGoods in item.GoodsList)
                {
                    if (payClientAppIdList.Count == 0)
                    {
                        payClientAppIdList.Add(parentGoods.PayClientAppID);
                    }
                    else if (!payClientAppIdList.Contains(parentGoods.PayClientAppID))
                    {
                        throw new Exception(Common.ExceptionCode.DifferentReceiveMoneyAccountErrorCode, "一个订单里只能包含相同收款账户的商品", TeldExceptionLevel.Warning);
                    }

                    if (parentGoods.MerchantId == null)
                    {
                        parentGoods.MerchantId = string.Empty;
                    }
                    if (merchantIdList.Count == 0)
                    {
                        merchantIdList.Add(parentGoods.MerchantId);
                    }
                    else if (!merchantIdList.Contains(parentGoods.MerchantId))
                    {
                        if (string.IsNullOrEmpty(parentGoods.MerchantId) || string.IsNullOrEmpty(merchantIdList[0]))
                        {
                            throw new Exception(Common.ExceptionCode.EmptyMerchantAccountErrorCode, "不支持可清算和不可清算店铺商品共同下单,请重新选择~", TeldExceptionLevel.Warning);
                        }
                        else
                        {
                            throw new Exception(Common.ExceptionCode.DifferentMerchantAccountErrorCode, "不支持非同一结算主体店铺商品共同下单,请重新选择~", TeldExceptionLevel.Warning);
                        }

                    }
                }
            }
        }
View Code

这个方法的英文名含义是检查支付配置Id,中文注释是检查商品收款账户信息,存在两个问题:

1、中文名称和英文含义不符

2、没有表达出这个方法的目的,检查支付配置Id、商品收款账户信息,都只是达成目的的手段,而不是目的本身

 

起始这个方法的目的是检查商品是否可以一起下单结算,做如下改动会更合理一些

/// <summary>
/// 检查商品是否可以一起下单结算
/// </summary>
/// <param name="shoppingCart"></param>
private void CheckIsGoodsCanInOnOrder(ShoppingCartVM shoppingCart)

 

标签:重构,payClientAppIdList,List,parentGoods,名称,new,合理,MerchantId,merchantIdList
From: https://www.cnblogs.com/lianjinzhe/p/16906384.html

相关文章