问题:如何设计对象,子系统和系统,以便这些元素的变化或不稳定性不会对其他元素产生不良影响?
解决方案:确定预测变化或不稳定的点,分配责任以围绕它们创建稳定的接口。
在我看来,这是与其他GRASP原则间接相关的最重要的原则。目前,最重要的软件指标之一是易于更改。作为架构师和程序员,我们必须为不断变化的需求做好准备。这是无法选择的,这是必须有的,是我们的职责与责任所在。
幸运的是,我们拥有大量的设计指南,原则,模式和实践,以支持不同抽象层次的变更。我只会提到一些(已经超出GRASP):
由于今天更适合迭代软件开发过程,因为即使我们被迫改变一次,我们也可以得出结论,并以较低的成本为未来的变化做好准备。