复制 粘贴 是坏味道 酝酿好味道的过程 是难得的 程序员 提升 提高 机会

[size=xx-large]复制 粘贴 是坏味道
将坏味道变成好味道的过程
是难得的 提升机会[/size]

例如:
我在项目中 遇到 的真实问题:
是有关硬件交互的,对硬件的任何操作都可能会出现异常。刚开始的代码看起来是这样的:
function1{
for(String devId : devs){
Dev dev=null;
try{
dev=DevManager.getDev(devId);
dev.doSomeThing();
//do some thing usefull
}catch(Exception ex){
//保存出错记录,等
}finally{
if(dev!=null)
dev.close();
}
}
}
function2{
for(String devId : devs){
Dev dev=null;
try{
dev=DevManager.getDev(devId);
dev.doSomeAnotherThing();
//do some thing usefull
}catch(Exception ex){
//保存出错记录,等
}finally{
if(dev!=null)
dev.close();
}
}
}

后来又陆续更改 除了 try块 的其他内容,并又添加了几个硬件处理的方法
这时候代码开始 大量 冗余 很难修改

穷则思变
每个方法中 个性的地方几乎只有 try块中 第 2 行以后的 部分 只要把 这部分 单独摘出来 就可以实现 “不 复制 粘贴”
于是有:
interface ICardConlHandle {
void exe(Dev dev);
}
public class CardConlHandle1 implements ICardConlHandle {
public void exe(Dev dev){
dev.doSomeAnotherThing();
//do some thing usefull
}
}
public class CardConlHandle2 implements ICardConlHandle {
public void exe(Dev dev){
dev.doSomeThing();
//do some thing usefull
}
}
function(ICardConlHandle c){
for(String devId : devs){
Dev dev=null;
try{
dev=DevManager.getDev(devId);
c(dev);
}catch(Exception ex){
//保存出错记录,等
}finally{
if(dev!=null)
dev.close();
}
}
}


[b][color=red]结论: 将坏的(麻烦的)东西变成好的(简单的)东西,叫创造力。 拥抱坏味道[/color][/b]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值