连载07:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)

依赖和影响

对于抽象和继承来说,其父类和子类的相互依赖是不对称的,父类可以不依赖于或较弱依赖于子类,也就是说,其子类发生变化,对于父类来说,几乎没有影响,但是父类的变化对于子类来说,其影响就很大。

我们通过图形来表达之后,我们将能够进行置换特性的两个实体之间进行连接,而这种连接称其就在路径具有“可达”,这种可达性其实就是一种具有连通的数学性质,其经过的连通数也多表示其连通密度越大,其关键通道的重要性就越强。
例如在下面所描述的继承体系中,根据上面的定义,其类B比继承于B的其他类C、D其连通的密度越大,说明类B的重要性就越强,因此,其B的变化对其他与之直接相连的类或者实体来说其影响就越大。

 

图1-9


同时,如果B是一个连通密度大的类,那么B依赖的其他类(一般是B继承于某个接口或者类),那么这个接口或者类对其继承于B的类C、类D的影响是同样大的,也就说其依赖性是可以传递的,只要都在连通线上,那么最高的被继承的接口或类,对整个继承体系(不仅仅是其直接的子类)都将产生影响。
而对于使用引用方式也存在这种影响,如上图中B对于A来说,就存在这种影响,一旦B发生变化,其A就要受到影响,其影响的效果与箭头所指的位置相反。
上面我们在谈到依赖接口的原因和置换有很大关系,但是,现实中我们也发现,对接口中虚函数的变化,其对周边的影响更大,那我们为什么还要宣称要依赖于接口编程吗?


猜你喜欢

转载自blog.51cto.com/13832308/2132742
今日推荐