不同的包的关联程度要尽量低,包含三个原则:
1 无环依赖原则:这样构建一个图,让每一个包对应一个图的节点,一个包依赖于另一个包就给相应的节点之间连一条有向边。因此,如果这个图有环,那么修改环上的任意一个包,都会影响到其它包,说明包之间的依赖关系比较高,需要想办法去掉图中的环。一个办法是包级别的依赖反转原则,反转环的一条边即可。
2 稳定依赖原则:如果一个包被多个包依赖,并且它自身依赖于很少的包,那么它就是稳定的,不容易受到其他包影响;反之,它就是不稳定的,容易受到其他包影响。因此,如果一个包依赖于另一个包,那么前者应该相对不稳定,后者应该相对稳定,这样它们之间才不容易相互影响,也就是依赖关系才比较低。
3 稳定抽象原则:如果一个包包含多个抽象类,它的抽象度就高;反之,它的抽象度就不高。如果一个包依赖于另一个包,并且依赖关系源自包里面类的继承关系,那么前者应该抽象度低,后者应该抽象度高,而根据稳定依赖原则,前者应该相对不稳定,后者应该相对稳定。因此,抽象度低的包应该是不稳定的,抽象度高的包应该是稳定的。
1 无环依赖原则:这样构建一个图,让每一个包对应一个图的节点,一个包依赖于另一个包就给相应的节点之间连一条有向边。因此,如果这个图有环,那么修改环上的任意一个包,都会影响到其它包,说明包之间的依赖关系比较高,需要想办法去掉图中的环。一个办法是包级别的依赖反转原则,反转环的一条边即可。
2 稳定依赖原则:如果一个包被多个包依赖,并且它自身依赖于很少的包,那么它就是稳定的,不容易受到其他包影响;反之,它就是不稳定的,容易受到其他包影响。因此,如果一个包依赖于另一个包,那么前者应该相对不稳定,后者应该相对稳定,这样它们之间才不容易相互影响,也就是依赖关系才比较低。
3 稳定抽象原则:如果一个包包含多个抽象类,它的抽象度就高;反之,它的抽象度就不高。如果一个包依赖于另一个包,并且依赖关系源自包里面类的继承关系,那么前者应该抽象度低,后者应该抽象度高,而根据稳定依赖原则,前者应该相对不稳定,后者应该相对稳定。因此,抽象度低的包应该是不稳定的,抽象度高的包应该是稳定的。