不少开发者在写代码时,都追求代码的复用,很多设计原则也是这么告诉我们的。我之前也对这些原则如数家珍,觉得一定要遵循,直到我读到 Don’t write reusable code,作者在文章中说,可重用代码不是目的,而是为了解决特定问题编写的简洁代码的副产品。
为了证明这一观点,作者提供了如下论据:
总结起来一句话,开发者只需要把精力放在如何编写简洁明了的代码去解决那些特定的问题即可,如果这些问题在未来真的发生了,可复用代码自然而然就出现了。如果你还不死心,这里有一个关于Spring Framework的统计,下面是前10个复用率最高的类:
1,279 Assert.java
491 StringUtils.java
403 Log.java
365 LogFactory.java
289 ObjectUtils.java
299 ClassUtils.java
252 HttpHeaders.java
222 CollectionUtils.java
204 MethodParameter.java
197 MediaType.java
这里面的每个类都只解决了一个小而具体的问题,这些类有一些共同的特征: