python如何重复执行代码_Duplicated Code (重复代码)如何处理?

8c57809c75302cb086241385f01e3231.png

不知道大家在使用 Idea 开发工具有没有使用 Alibaba Java Coding Guidelines 插件,阿里巴巴基于《阿里巴巴 Java 开发规约》手册内容,研发了一套自动化的 IDE 检测插件。

Python 闲谈 14——安利下IDEA开发神器中好用到爆的插件

如果你在一个以上的地点看到相同的程序结构

4b8079e0abfe3712ce283cc8c91da956.png

醒醒,你该重构代码了。

1、最常用的手段之一:Extract Method(提炼函数)

① 无局部变量

② 有局部变量,但目标方法仅读取它

③ 有局部变量,并且目标方法有对其进行赋值

IDEA 中选中代码,然后使用快捷键 Extract Method

Ctrl + Alt + M
504e63e9f82a9630c7c1f448a5fb2fa6.png

重构前的代码

3be6de98e97fbb919fe2119975db9233.png

重构后的代码

2、Template Method 设计模式

① 适合场景

a.一次性实现一个算法的不变部分,并将可变的行为留给子类来实现。

b.各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复。

c.需要通过子类来决定父类算法中某个步骤是否执行,实现子类对父类的反向控制

② 实例

3034e620f5d44b5b6ccb2f73c3130a97.png

创建一个抽象模板结构(AblstractClass)

b9fdf38b0c137c95526b353544380299.png

创建一个具体模板(ConcreteClass)

输出结果:

53bf55b580666698711b0c85cc5d2da4.png

欢迎关注 @Python大星 ,一个会点 Python 的 Java 程序员。文章如有问题,你倒是说啊,喜欢的话,一键三连。

@Python大星 | 文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值