工作那点事2(项目中的“移花接木”)

    Jessie 今天上班,收到一封邮件,是老大临时在项目中加了一个小的需求功能改动惊恐。但是这个功能是用户经常使用的功能,是一个比较老的逻辑实现了,所以对于这部分的改动要小心。OK,背景介绍就到这里。

    在程序中,有一个方法(这里涉及到公司信息,所以以简单的代码表示,我尽量写得清楚些,也为自己将来温故打好基础):

m_objectTxt= new StoreTxt().GetObjectTxt( aString, bIndex, 10, homeIndex.page);

GetObjectTxt方法的具体实现:

GetObjectTxt( aString, bIndex, 10, homeIndex.page)

{

// do something

}

经过需求分析,进行代码实现时,发现以上的方法就是我们要改动的方法,改动的具体办法是 在这个方法里加一个逻辑判断。这个时候大家可能会说,这个还不简单,加上参数,build一下 不就成了吗?

我刚开始也是这么想的,并且实现了功能。但是我之前说过啊,这个方法是一个比较久远的功能,是“牵一发而动全身”滴~

考虑以上的缘由,所以不能这么改,我就想到了 那就方法重载好了,但是呢,如果这样重载:

GetObjectTxt( aString, bIndex, 10, homeIndex.page,bool true)//true是新加的参数

{

  //do something

  //这里其实只有一块与上面的GetObjectTxt()不同,这样子代码重复的太多,而且代码不够优雅。

}

后来想到应该这么用,代码改动的最少大笑。总体思想还是:方法重载。

当一种图书的类别是漫画书时,跳转到“中国传统水墨画瑰宝”这么一个Page上。这里就加了上面说的那个布尔类型的判断

m_objectTxt= new StoreTxt().GetObjectTxt( aString, bIndex, 10, homeIndex.page,true);

这个新方法是这样的

GetObjectTxt( aString, bIndex, 10, homeIndex.page,true)

{

//就是原来的的GetObjectTxt()。

//在其基础上,添加新的逻辑,即漫画书的判断

}

而老的GetObjectTxt()方法,则这样处理

m_objectTxt= new StoreTxt().GetObjectTxt( aString, bIndex, 10, homeIndex.page);

GetObjectTxt方法的具体实现:

GetObjectTxt( aString, bIndex, 10, homeIndex.page)

{

return GetObjectTxt( aString, bIndex, 10, homeIndex.page,false)

//就是说,在老的GetObjectTxt这个方法中,即使是4个参数的,但是在方法具体实现时,调用的是新的GetObjectTxt方法。

//当布尔值=true时,走漫画书的判断;false则还是走老逻辑

}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值