知识卡片
稳定依赖原则与稳定抽象原则
内容
一个包被越多其他包依赖,接口就需要越稳定,因为接口的改动会波及所有依赖它的包,这就是稳定依赖原则。与之配套的稳定抽象原则观察到:真正稳定的包往往有更高比例的接口和抽象类,因为抽象比具体实现更经得起变化。好的包结构会呈现清晰的依赖流,依赖大致运行在单一方向,这是结构良好的信号;环状依赖被称为应避免的坏味道(无环依赖原则),作者认为不必奉为绝对规则,只需把环限制在小范围,尤其不要跨越架构分层。
参考来源
- 位置:《UML精粹:标准对象建模语言简明指南(第3版)》第7章《包图》(源文件:_epub-src/EPUB/6.xhtml)
- 结论依据:原文说明"有越多依赖进入一个包,该包的接口就需要越稳定,因为接口的任何改变都会波动到所有依赖于它的包(稳定依赖原则[Martin])……更稳定的包倾向于有更高比例的接口和抽象类(稳定抽象原则[Martin])",并讨论无环依赖原则的适用限度。
- 原始内容:有越多依赖进入一个包,该包的接口就需要越稳定,因为接口的任何改变都会波动到所有依赖于它的包(稳定依赖原则[Martin])……通常,你会发现更稳定的包倾向于有更高比例的接口和抽象类(稳定抽象原则[Martin])……我不把它当做一个绝对的规则,但我确实认为环应该局限在一个范围内,特别是,你不应该有跨层的环。