为了账号安全,请及时绑定邮箱和手机立即绑定

当项目需求升级时,需要在一个成员方法的最后加入一些新的代码,这应该如何解决,请看例子

当项目需求升级时,需要在一个成员方法的最后加入一些新的代码,这应该如何解决,请看例子

炎炎设计 2019-01-29 16:58:59
比如,第一版的代码为://购买商品apipublic function buyGoods(){    //参数验证     $validate->validateParam();    //购买逻辑     $goods->buy(); }这时候,第一版已经稳定运行了,我们希望不再过多修改这个成员方法,但第二版的需求来了,那就是要在这个函数处理完之后再加入一些处理函数,比如第二版的代码为:    //购买商品api     public function buyGoods(){        //参数验证         $validate->validateParam();        //购买逻辑         $goods->buy();        //用户积分明细录入         $user->credit();        //用户资金明细录入         $user->money();                  ...等等n个新加函数     }这个credit()和money()等是后加入了的,如果想加入这些函数就必须修改buyGoods(),这样就破坏了原来的buyGoods()。有没有一种设计模式,可以让成员方法能在不改变原有代码的前提下轻易扩展?
查看完整描述

1 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

如果不依赖调用的话,可以用mq方式解耦。buyGoods中做生产者,往mq里丢数据就行了。消费者自己去做消费。

查看完整回答
反对 回复 2019-01-29
  • 1 回答
  • 0 关注
  • 424 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信