重构代码设计精要

简介: 重构代码设计精要
  1. extract method 提炼方法 (110)

    将代码放进一个独立函数中,并让函数名称解释该函数的用途

  2. pull up field 字段上移 (332)

    两个子类拥有相同的字段,将该字段移动到超类。

  3. extract class 提炼类(149)

    某个类做了应有两个类做的事,建立一个新类,将相关字段和函数从旧类搬到心类。

  4. move method 搬移函数

    程序中,有个函数与其所驻类之外的另一个类进行更过交流,调用后者,或被后者调用,在该函数最常引用的类中建立一个新函数,将旧函数变成一个单纯的委托函数,或是将旧函数完全移除。

  5. encapsulate field 封装字段

    将其声明为private,并提供相应的访问函数。安全问题,如果不封装其他地方修改对象中的属性,该对象的使用者并不知情。

  6. move field 搬移字段

    与4相同意思。

  7. duplicated code 重复代码 (76)
  8. form template method 塑造模板函数 (345)

    你有一些子类,其中相应的某些函数,以相同的顺序执行类似的操作,但各个操作的细节上有所不同。

    将这些操作分别放进独立函数中,并保持他们都有相同的签名。于是原函数也变得相同了,将原函数上移到超类。

    调用的时候调用超类中的原函数,通过多态指定调用的子类。

    设计模式中的Template method 注重顺序。(我现在做的项目中edi导出报文使用的就是模板方法模式)

  9. substitute Algorithm 替换算法 (139)

    将函数本体替换为另一个算法(注意if判断固定几个值时,可以把固定的几个值放入集合中 139)

  10. replace temp with query 以查询取代临时变量 (120)

    你的程序以一个临时变量保存某一表达式的运算结果,将这个表达式提炼到一个独立函数,将这个临时变量的所有引用点替换为对新函数的调用,此后,新函数就可以被其他函数调用。

  1. split temporary variable 分解临时变量

    你的程序某个临时变量被幅值超过一次,他即不是循环变量,也不被用于收集计算结果,针对每一次赋值,创造一个对立的,对应的临时变量(final)

  2. Intriduce paramter object 引入参数对象( 295)

    某些参数总是很自然的同时出现,以一个对象取代这些参数。(如startDate,endDate)

  3. preserve whole object 保持对象完整 (288)

    你从某个对象取出若干值,将他们作为某一次函数调用时的参数,改为传递整个对象。

  4. replace method with method object 以函数对象取代函数 (135)

    你有一个大型函数,其中对局部变量的使用使你无法采用提炼函数,将这个函数放进一个单独对象中,如此以来局部变量就变成了对象中的一个字段,然后你可以在同一个对象中将大型函数分解成多个小型函数。

  1. decompose conditional 分解条件表达式 (238)

    有一个复杂的条件表达式语句,从 if then else 三个段落中分别提炼独立函数。(每一个等号都有其特定意义,通过函数名称标注)

  1. extract interfact 提炼接口 (341)

    若干客户使用类接口中的同一子集,或者两个类的接口有部门相同,将相同的子集提炼到一个独立接口中。(接口弥补了继承,通用也可以通过继承的方式理解接口类与实现类)

  1. Long parameter list 过长参数列

    太长参数类导致难以理解。太多参数会造成前后不一致,不易使用,而且一旦你需要更多数据,旧不得不修改他。

  2. inline class 将类内联化 (154)

    某各类没有做太多事情,将这个类所有特性搬移到另一个类中,然后移除原类。与提炼类相反。

相关文章
|
设计模式 算法 Java
设计模式第十五讲:重构 - 改善既有代码的设计(下)
设计模式第十五讲:重构 - 改善既有代码的设计
302 0
|
8月前
|
设计模式 传感器 数据处理
探索设计模式的魅力:为什么你应该了解装饰器模式-代码优化与重构的秘诀
装饰器模式是一种设计模式,它允许在运行时向对象添加额外的职责,而无需修改其代码。这种模式提供了一种动态扩展对象功能的方法,同时保持了对象的单一职责原则。本文介绍了装饰器模式的基本概念、原理、优势、适用场景、实现方法、最佳实践和注意事项。通过装饰器模式,可以将多个行为组合成一个更复杂的行为,而无需使用继承或大量的接口实现。装饰器模式适用于需要对一个对象进行一系列的增强处理的情况,而这些增强处理可以以一种松耦合的方式进行组合。通过使用装饰器模式,可以提高代码的可维护性、可扩展性和灵活性,使系统更加灵活和易于维护
137 1
探索设计模式的魅力:为什么你应该了解装饰器模式-代码优化与重构的秘诀
|
设计模式 Java 测试技术
设计模式第十五讲:重构 - 改善既有代码的设计(上)
设计模式第十五讲:重构 - 改善既有代码的设计
339 0
|
设计模式 程序员 开发者
程序员在开发中必经之路:重构代码
众所周知,程序员在开发过程中接手前人代码,或者接手公司外购项目的代码等情况的时候,都有想要重构代码的冲动,与其这样说,不如说程序员只要是接手不是自己亲自写的代码都想重构!俗话说得好:一百个程序员脑中有一百个编程思维,不同程序员就算是开发相同功能的程序,一定会有不同的实现方式,而且代码格式和实现方式也肯定是不一样的,这样就给程序的代码重构留下了伏笔。
165 1
|
数据处理
《重构2》第六章-重构基础
《重构2》第六章-重构基础
310 0
|
存储 Java 数据库连接
写了这么久代码你了解Java面向对象的设计原则吗?(三)
写了这么久代码你了解Java面向对象的设计原则吗?
135 0
写了这么久代码你了解Java面向对象的设计原则吗?(三)
|
存储 XML Java
写了这么久代码你了解Java面向对象的设计原则吗?(二)
写了这么久代码你了解Java面向对象的设计原则吗
224 0
写了这么久代码你了解Java面向对象的设计原则吗?(二)
|
设计模式 Java 测试技术
把书读薄 | 《设计模式之美》规范与重构(上)(二)
本文是 规范与重构 (15-33) 的浓缩总结,同上,把实战部分(34-37) 拆到下节,这部分主要是一些编码建议和规范,过一遍,自己写代码注意下就好,比较简单。 二手知识加工难免有所纰漏,感兴趣有时间的可自行查阅原文,谢谢。
159 0
|
数据库
高质量代码优化!谈谈重构项目中if-else代码的几点建议
本篇文章探讨了代码的重构以及优化,主要针对代码中大量的条件判断if-else语句问题提出了具体的优化建议。介绍了优化if-else语句的几种有效的方法,包括switch,接口interface以及数据库实现对条件语句进行的优化。
181 0
高质量代码优化!谈谈重构项目中if-else代码的几点建议
|
设计模式 测试技术 程序员
把书读薄 | 《设计模式之美》规范与重构(上)(一)
节后第一天,本文是 规范与重构 (15-33) 的浓缩总结,同上,把实战部分(34-37) 拆到下节,这部分主要是一些编码建议和规范,过一遍,自己写代码注意下就好,比较简单。 二手知识加工难免有所纰漏,感兴趣有时间的可自行查阅原文,谢谢。
139 0