读《重构与模式》4--代码坏味

本文针对重复代码、方法过长、条件逻辑复杂等常见问题,介绍了使用Template Method、Factory Method、Composite、Adapter等设计模式进行重构的方法。通过这些设计模式的应用,帮助开发者提高代码质量和维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.重复的代码

使用template method去除

如果是对象创建是可以使用Factory Method来去除

如果代码处理一个对象或者一组对象,可以用composite重构,如果对象处理区别只有在接口不同,可以使用adapter


2.方法过长

减少方法的长度可以共享逻辑,可以帮助理解代码。

如果有包含了一个分派和处理请求的大号swiche可以使用command

如果swiche从接口的不同的类许多的类中收集数据,可以使用visitor


3.条件逻辑太复杂

如果条件逻辑控制是应该执行一种计算操作几个变形中的类中的某一个,可以使用strategy

如果是核心代码之处还要加上特殊的行为,可以用decorator

如果控制对象状态转换的条件表达式比较的复杂,可以使用state

处理空操作情形经常需要创建条件逻辑,可以用null object


4.基本类型迷恋

如果控制对象的状态转换的是使用基本类型的复杂条件逻辑,可以使用state

如果控件算法运行的非常复杂的条件逻辑,可以使用 strategy

隐式创建了使用基本类型的树,可以使用compoiste

类有许多方法支持多个基本类型的组合,那么可能存在隐式的语法interpretor

如果基本类型是提供装饰,可以使用decorator


5.不恰当的暴露

使用factory


6.解决方案蔓延

如果许多类中都有用来完成某些职责的代码和数据,这就是解决方案的蔓延


7.异曲同共的类

两个相似类却有不同的接口。


8.冗余类


9.类过大

使用command,state,interpretor进行重构


10.分支语句

使用command,将聚集操作移到visitor


11.组合爆炸

当有许多段代码使用不同种类或数量的数据或对象做同样的事情


12.怪异解决方案

如果在同一系统中使用不同方式解决同一个问题。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值