设计或许不是为了,以不变应万变。很多书都说不去修改既有代码,都是认为修改的理由不正当。要想想一个万全之策来对应以后变化的情况,非常困难,也许根本没有,除非能明确限定以后的需求不会变动。既然修改、完善、扩展是不可避免的,那设计的让改动一个地方时不牵扯其他地方,减低相互的依赖性、耦合性。也是让代码本身就能更好表达作者的意图,比如去除magic number等。
其实这不是说设计不重要,反而是设计很重要,需要明确描述代码应该的关联和不应该的关联,这样在扩展和修改时就能控制在一个有效范围内。当然修改代码需要切实正当的要求。