分析、思考、重构

在平时的开发中,我们总是习惯于使用过程化的思维方式来编写代码,没有通过开发高内聚的方法,来结构化自己的思维,从而消除逻辑重复,逻辑复用不仅仅是指在一个平面内的逻辑复用,更应该是一种结构化的逻辑复用。下面,我用平时开发过程中一个重构的过程,来做一个描述。
假设,现在有三个类,如下图所示:


[img]http://dl.iteye.com/upload/attachment/0071/2734/2c304196-a328-3dc6-8e11-1ec31e8e5548.png[/img]


在这三个class中,分别有三个重复的属性:a, b, c, 而且这三个属性具有相关性,对应于一个功能的具体实现,
而这个具体实现,分别分布在了三个不同的业务中。首先,从这三个不同业务实现类中,抽取出一个基类。需要说明的是对于spring这样的使用注解方式,来注入依赖关系的,基类注解的关键字是:@MappedSuperclass

[img]http://dl.iteye.com/upload/attachment/0071/2736/f5a53dcf-38c6-3e94-8ec0-2c8f897b0463.png[/img]


在功能处理类FunctionHandler类中,对这个功能的具体实现做处理,如下图:


[img]http://dl.iteye.com/upload/attachment/0071/2738/b896fe05-b68d-3010-a457-b4a25cd6313e.png[/img]


参数的类型是 ABC,而不是A或B或C。利用继承或者多态,结构化地消除重复逻辑并复用。开发高内聚的方法,我个人认为对于消除重复逻辑,是很重要的。而高内聚的方法,肯定是存在于一个结构中的。应尽量避免使用过程化的思维习惯来开发软件,使用结构化的面向对象的方式来思考。消除重复的逻辑,获得变化空间!
最后,我认为是《测试驱动开发》,《卓有成效的程序员》给我了这样的启发,感谢Kent Beck!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值