💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
# 核对表:重构总结 ## 数据级的重构 - [] 用具名常量来代替神秘数值。 - [] 用更明确或更具信息量的名字来重命名变量。 - [] 将表达式内联化。 - [] 用函数来代替表达式。 - [] 引入中间变量。 - [] 将多用途变量转换为多个单一用途变量。 - [] 使用局部变量实现局部用途而不是使用参数。 - [] 将基础数据类型转化为类。 - [] 将一组类型码转化为类或是枚举类型。 - [] 将一组类塑码转化为含派生类的类。 - [] 将数组转化为对象。 - [] 封装群集。 - [] 用数据类替代传统记录。 ## 语句级的重构 - [] 分解布尔表达式。 - [] 将复杂的的布尔表达式转换为命名精确的布尔函数。 - [] 将条件语句中不同部分中的重复代码合并。 - [] 使用break或return而不是循环控制变量。 - [] 在嵌套的if-then-else语句中一旦知道结果就立刻退出,而不是仅仅赋一个返回值。 - [] 用多态来代替条件语句(尤其是重复的case语句)。 - [] 创建并使用空对象代替对空值的检测。 ## 子程序级的重构 - [] 提取子程序。 - [] 将于程序代码内联化。 - [] 将冗长的于程序转化为类。 - [] 用简单的算法替代复杂算法。 - [] 增加参数。 - [] 减少参数。 - [] 将查询操作同修改操作区分开来。 - [] 合并功能相似的子程序,并用参数来区分他们。 - [] 通过传递不同的参数使于程序体现不同的功能。 - [] 传递整个对象而非特定成员。 - [] 传递特定成员而非整个对象。 - [] 封装向下转型操作。 ## 类实现的重构 - [] 将值对象改为引用对象。 - [] 将引用对象改为值对象。 - [] 用数据初始化来代替虚函数。 - [] 改变成员函数或数据的位置。 - [] 将特定代码提出生成派生类。 - [] 将相似的代码合并起来放到基类中。 ## 类接口的重构 - [] 将某成员子程序放到另一个类中。 - [] 将一个类转化成两个。 - [] 删除某个类。 - [] 隐藏委托关系。 - [] 去掉中间人。 - [] 用委托代替继承。 - [] 用继承代替委托。 - [] 引入外部子程序。 - [] 引入扩展类。 - [] 封装暴露在外的成员变量。 - [] 对不能修改的成员去掉Set()函数。 - [] 隐藏在类的外部不会使用的成员函数。 - [] 封装不会用到的成员函数。 - [] 如果基类和派生类的代码实现相似,将二者合并。 ## 系统级的重构 - [] 为无法控制的数据创建明确的索引源。 - [] 将单向类联系改为双向类联系。 - [] 将双向的类联系改为单向类联系。 - [] 使用工厂函数而非简单的构造函数。 - [] 用异常代替错误代码,或者反其道而行之。