可扩展性指系统为了应对将来需求的变化而提供的一种扩展能力,新需求出现时系统不需要或者仅需要少量修改就可以支持,无需整个系统重构或者重建。
面向对象就是为了解决可扩展性,后来的设计模式更是将可扩展性做到了极致。
具备良好扩展性的两个基本条件:正确预测变化、完美封装变化。
预测变化
架构师需要预测,但预测本身就存在不确定性复杂性在于:
- 不能每个设计点都考虑可扩展性
- 不能完全不考虑可扩展性
- 所有的预测都存在出错的可能性
应对变化方案一

将“变化”封装在“变化层”,将不变的部分封装在独立的“稳定层”。
例一:接受数据格式的扩展

例二:数据库类型的扩展

问题:
- 对两个层的拆分
- 设计两个层间的接口
应对变化方案二
提炼出一个“抽象层”和一个“实现层”

有23种设计模式
本文探讨了软件系统的可扩展性设计原则,介绍了通过正确预测变化并完美封装变化来提高系统灵活性的方法,并提供了两种实用的应对变化的策略。
1844

被折叠的 条评论
为什么被折叠?



