层次化的主要目的还是为了设计出高质量的系统
+ 易于理解
+ 易于维护
+ 易于测试
+ 易于重用
= 少加班
导致物理循环依赖的原因
产生物理循环依赖的原因是多种多样的,书中列举了3种,但总结一下可能2种更合适一些。
心理方面:在对原有系统开发新功能时,或修改问题时,信手拈来的习惯可能在不经意间造成循环依赖。
技术方面:设计系统逻辑关系时,逻辑上的耦合导致了物理上的循环依赖。
处理物理循环依赖的方式
升级
组件间支配: 如果组件y处于组件x的上层,并且y在物理上依赖于x,则称组件y支配组件x。
支配的重要性在于它能够提供除了层次号以外的其他的信息。
- 一个高层组件增加了一个对底层组件的依赖不会产生循环依赖;
- 同一层的两个组件间增加一个依赖会影响层次关系,但也不会产生循环依赖。
升级:如果一个高层组件和一个底层组件间有循环依赖,可以考虑把依赖的这部分功能转移到高层组件中,从而打破依赖关系。这种方式称为升级。
升级的两种思路:
将部分功能转移,或者构造一个上层模块。
降级
与升级相对应的便是降级,有些功能模块