重构

霸气de小男生 提交于 2021-01-04 08:43:27

最近在看<重构>这本书,看着看着就迷上了重构.所以打算专门搞一个分类记录一些关于重构的那些事

"重构"是一小步一小步慢慢前进的过程,下面列出书上所写的重构列表,在以后的日子里,我会对应列表,描述每一种重构手法,重构是需要好鼻子的,闻出坏味道,还需要一套规范有效的方式来安全的修改代码.

  1. Add Parameter    (添加参数)
  2. Change Bidirectional Association to Unidirectional    (将双向关联改为单向)
  3. Change Reference to Value    (将引用对象改为值对象)
  4. Change Unidirectional Association to Bidirectional    (将单向关联改为双向)
  5. Change Value to Reference    (将值对象改为引用对象)
  6. Collapse Hierarchy    (合并继承层次)
  7. Collapse Conditional Expression    (合并条件语句)
  8. Consolidate Duplicate Conditional Fragments    (合并重复的条件片段)
  9. Convert Procedural Design to Objects    (将过程式设计转换为面向对象)
  10. Decompose Conditional    (分解条件语句)
  11. Duplicate Observed Date    (重复被观察数据)
  12. Encapsulate Collection    (封装集合)
  13. Encapsulate Downcast    (封装向下转型)
  14. Encapsulate Field    (封装字段)
  15. Extract Class    (提取类)
  16. Extract Hierarchy    (提取继承层次)
  17. Extract Interface    (提取接口)
  18. Extract Method    (提取方法)
  19. Extract Subclass    (提取子类)
  20. Extract Superclass    (提取超类)
  21. Form Template Method    (形成模板方法)
  22. Hide Delegate    (隐藏委托类)
  23. Hide Method    (隐藏方法)
  24. Inline Class    (内联类)
  25. Inline Method    (内联方法)
  26. Inline Temp    (内联临时变量)
  27. Introduce Assertion    (引入断言)
  28. Introduce Explaining Variable    (引入解释性变量)
  29. Introduce Foreign Method    (引入外加方法)
  30. Introduce Local Extension    (引入本地扩展类)
  31. Introduce Null Object    (引入Null对象)
  32. Introduce Parameter Object    (引入参数对象)
  33. Move Field    (移动字段)
  34. Move Method    (移动方法)
  35. Parameter Method    (参数化方法)
  36. Preserve Whole Object    (保持对象完整)
  37. Pull Up Constructor Body    (上移构造器主体)
  38. Pull Up Field    (上移字段)
  39. Pull Up Method    (上移方法)
  40. Push Down Field    (下移字段)
  41. Push Down Method    (下移方法)
  42. Remove Assignments to Parameters    (去除参数赋值)
  43. Remove Control Flag    (去除控制标志)
  44. Remove Middle Man    (去除中间人)
  45. Remove Parameter    (去除参数)
  46. Remove Setting Method    (去除设置方法)
  47. Rename Method    (重命名函数)
  48. Replace Array with Object    (用对象替代数组)
  49. Replace Conditional with Polymorphism    (用多态代替条件语句)
  50. Replace Constructor with Factory Method    (用工厂方法代替构造器)
  51. Replace Date Value with  Object    (用对象代替数据值)
  52. Replace Delegation with Inheritance    (用继承代替委托)
  53. Replace Error Code with Exception    (用异常代替错误码)
  54. Replace Exception with Test    (用测试代替异常)
  55. Replace Inheritance with Delegation    (用委托代替继承)
  56. Replace Magic Number with Symbolic Constant    (用字面常量代替魔数)
  57. Replace Method with Method Object    (用方法对象代替方法)
  58. Replace Nested Conditional with Guard Clauses    (用守卫语句代替嵌套条件语句)
  59. Replace Parameter with Explicit Methods    (用显示方法替代参数)
  60. Replace Parameter with Method    (用方法代替参数)
  61. Replace Record with Data Class    (用数据类代替记录)
  62. Replace Subclass with Fields    (用字段代替子类)
  63. Replace Temp with Query    (用查询方法代替临时变量)
  64. Replace Type Code with Class    (用类代替类型码)
  65. Replace Type Code with State/Strategy    (用State/Strategy代替类型码)
  66. Replace Type Code with Subclasses    (用子类代替类型码)
  67. Self Encapsulate Field    (自封装字段)
  68. Separate Domain from Presentation    (将领域逻辑与表现分离)
  69. Separate Query from Modifier    (将查询方法与修改方法分离)
  70. Split Temporary Variable    (分离临时变量)
  71. Substitute Algorithm    (替换算法)
  72. Tease Apart Inheritance    (分解继承层次)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!