【www.gdgbn.com--手机软件】

1 开闭原则(OCPThe Open-Closed Principle

开闭原则是说,所有软件模块都应该可以扩展,但不可以修改。遵循这个原则的关键在于抽象化。我们在写一
个模块时,不论是一个类,还是一个构件,都应该认真思考它的真正功能,它对其它模块的依赖性,输入和输
出,等等。分离出它的可变部分(例如,用接口或外部配置等),对不变部分进行封装。这些不变部分就是这
个模块的本质。这里需要说明的是,在对不变部分进行封装时,我们如何定义不变的部分。在数学中,当我们
谈到不变量时,总是要指明它是在什么变化下的不变量。否则是没有意义的,因为在一种变化下的不变量很有
可能在另一种变化下就不是不变量了。所以,当我们定义不变的部分时,首先要明确它的变化范围。但是,在
软件开发中,很难事先准确的知道这些变化,很多时候是凭经验或行业知识来判断的。所以,这个原则多多少
少带有主观性,更像一个总纲而不像一个硬性的法律条文。
Martin Fowler的书 Analysis Patterns讲解了一些实
际经验,有兴趣的读者可以参考。下面这些原则是讲如何安排依赖性使得模块具有良好的封闭性,可重用性和
可维护性。



 2. 依赖反向原则(DIP

本文来源:http://www.gdgbn.com/shoujikaifa/13463/