最近在重读这本书《Engineering Software as a Service》(最近的计划就是尽可能少的接受“新”知识和尽可能能多的把以前学的看的东西再深入的学一下和做总结)
其中的 1.5 节从“重用”的角度说了下软件发展,觉得很有意思,想拿出来说下。
最早的时候,人们发明了方程,这样代码不同的部分就可以通过传入不同的参数而达到复用。 随后出现了输入输出的标准库以及数学方程,这样就可以用别人的代码了。 面向对象的出现,使人们就可以通过继承的方式,让不同的对象复用和管理(manage)一组相同的任务。 而面向对象也是有局限的,只有实现相同的时候,才可以重用。而用一个普遍的策略来处理相同的事件(event),这样即使实现不一样,也能达到重用,这便是设计模式。
重用并不是复制粘贴,因为复制粘贴会带来问题--你修复一个 bug 或者增加一个特性的时候(feature)的时候,你需要更改很多地方。