【从零开始学架构-李运华】06|复杂地来源:可扩展性

可扩展性指系统为了应对将来需求的变化而提供的一种扩展能力,新需求出现时系统不需要或者仅需要少量修改就可以支持,无需整个系统重构或者重建。
面向对象就是为了解决可扩展性,后来的设计模式更是将可扩展性做到了极致。

具备良好扩展性的两个基本条件:正确预测变化、完美封装变化。

预测变化

架构师需要预测,但预测本身就存在不确定性复杂性在于:

  • 不能每个设计点都考虑可扩展性
  • 不能完全不考虑可扩展性
  • 所有的预测都存在出错的可能性

应对变化方案一

这里写图片描述

将“变化”封装在“变化层”,将不变的部分封装在独立的“稳定层”。

例一:接受数据格式的扩展
这里写图片描述

例二:数据库类型的扩展
这里写图片描述

问题:

  1. 对两个层的拆分
  2. 设计两个层间的接口

应对变化方案二

提炼出一个“抽象层”和一个“实现层”

这里写图片描述

有23种设计模式

猜你喜欢

转载自blog.csdn.net/u014737928/article/details/81080851