设计模式之谈:从重构到模式

从重构到模式

当你意识到你需要理解并学会重构的时候,就是你即将进阶的时候。
专业的程序员都是从这里开始正式的职业之旅的。

重构

代码重构(code refactoring) 指对软件代码做任何改动以增加可读性或者简化结构而不影响输出结果。

在软件工程学里,重构代码一词通常是指在不改变代码的外部行为情况下而修改源代码,有时非正式的称为“清理干净”。在极限编程或者敏捷方法学中,重构常常是软件开发循环中的一部分:开发者轮流增加新的测试和功能,并重构代码来增进内部的清晰性和一致性。自动化的单元测试保证了重构不至于让代码停止工作。

重构既不修正错误,又不增加新的功能性。反而它是用来提高代码的可读性或者改变代码的内部结构和设计,并且移除死代码,使其将来更容易被维护。重构代码可以是结构层面抑或语义层面,不同的重构手段施行时,可能是结构的调整或语义的转换,但前提是不影响代码在转换前后的行为。特别是,在现有的程序结构下,给一个程序增加新的行为可能非常的困难,因此开发人员可能先重构这部分代码,使加入新行为变得容易。

重构是为了更好的维护与扩展,它能使你快速的了解原有代码的设计,不至于你一个月后再回头看源代码时有种完全看不懂的感觉。

频繁的重构之后,总会有一些通用的模式在里面,将这些通用的模式总结起来,构成了设计模式。

设计模式

在软件工程中,设计模式是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。

设计模式并不直接用来完成代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案。面向对象设计模式通常以类或对象来描述其中的关系和相互作用,但不涉及用来完成应用程序的特定类或对象。设计模式能使不稳定依赖于相对稳定、具体依赖于相对抽象,避免会引起麻烦的紧耦合,以增强软件设计面对适应变化的能力。

说到设计模式,我们不得不说到模式。

模式

模式(pattern), 在物体或事件上,产生的一种规律变化与自我重复的样式与过程。在模式之中,某些固定的元素不断以可预测的方式周期性重现。最基本而常见的模式,称为密铺,具备重复性与周期性两大特征。找寻出固定模式是人类基本的认知功能之一。

模式的存在,方便我们复用问题的解决方案。
如果我们需要去劈柴,我们很可能就会想到斧头。因为斧头是劈柴的常用解决方案。

结尾

当我们学习设计模式,发现并不能理解,或者觉得并不能很好的运用的时候,或许你需要好好学习一下重构,如果没有理解重构,而直接跳过它学习设计模式,这个过程将是事倍功半的。

推荐书籍:

  • 《重构:改善既有代码的设计》
  • 《设计模式之禅》

你可能感兴趣的:(设计模式之谈:从重构到模式)