集中原则——软件设计之道

为什么要集中?因为软件经常需要修改,而集中便于修改。

举例来说明:

1.魔术数字,也就是一些孤立的数字,不能直观看出有什么意义的数字。这种数字可以用常量来代替,任何重复使用到的地方,都可以用这个常量来代替,如果你需要修改这个数值,那么只需要修改常量的定义就可以了,而不需要多处修改。

2.函数把算法集中在一块了。你可以在每次用到该算法的时候,都直接写代码(或者复制过来),但是如果你用函数去代替,那么当改进算法质量的时候,任何用到该算法的地方,都能同时得到改善。

3.对象把算法和状态集中在一块了。根据状态机理论,程序的实质就是从一个状态跳转到另外的一个状态,而对象很好的实践了这个理论。如果状态和对象各处一方,修改的时候就要到处找了。

 

另外说说设计上的事情。

硬编码是设计者需要避免的,所谓的硬编码,就是不易于修改的状态。因此集中原则是对付这种状态的其中一个好方法。

如何才能彻底的解决硬编码问题,第一个是把每一个潜在的修改点独立隔离起来,也就是把功能点集中起来。各个功能点之间不应该相互牵涉,避免牵一发而动全身之虞。第二点,从框架上,高层面上,提供一个良好的扩展界面。

又可以说,先从低层次上把功能点分离了,再从高层次上把功能点衔接起来形成一个系统。

可见:

第一点是功能点的集中。

第二点是业务的集中。

这样就能做到修改方便,解决硬编码的问题。这里只是两个层次的抽象,可以设想一个足够复杂的系统,可以抽象到三层以上,但是总的策略是不变的,底层各部分的分离,在高层再融合起来。

posted @ 2010-12-22 14:43  诺贝尔  阅读(372)  评论(0编辑  收藏  举报