软件架构评估中的质量属性之一是可修改性,它指的是软件系统在未来能够容易地进行修改的能力。在设计软件架构时,考虑可修改性至关重要,因为它直接影响到软件的维护成本和生命周期。针对可修改性的提升,有几种常用的战术,这里我们聚焦于三种:局部化修改、防止连锁反应和推迟绑定时间。
战术 | 说明 |
---|---|
局部化修改 | 设计系统的方式,使得当需求变化或修复缺陷时,影响可以局限于系统的小部分,从而减少修改带来的影响范围。 |
防止连锁反应 | 采取措施确保一个组件的变化不会导致其他组件也需要变更。这通常通过降低组件间的耦合度和增加内聚性来实现。 |
推迟绑定时间 | 将系统中的决策或组件选择推迟到尽可能晚的时刻。这样,只有在必要的时候才做出选择,为将来的修改留下更多的灵活性和选择空间。 |
例如,采用模块化设计可以帮助实现局部化修改,因为每个模块可以独立于其他模块进行更改。利用接口和抽象类可以减少组件之间的直接依赖,有助于防止连锁反应。而推迟绑定时间的一个例子是,使用插件或服务定位器模式允许在运行时动态替换或绑定特定的服务或组件,而不是在编译时静态绑定。