GRASP之受保护的变化 - Kamil Grzybek


问题:如何设计对象,子系统和系统,以便这些元素的变化或不稳定性不会对其他元素产生不良影响?
解决方案:确定预测变化或不稳定的点,分配责任以围绕它们创建稳定的接口。
在我看来,这是与其他GRASP原则间接相关的最重要的原则。目前,最重要的软件指标之一是易于更改。作为架构师和程序员,我们必须为不断变化的需求做好准备。这是无法选择的,这是必须有的,是我们的职责与责任所在。

幸运的是,我们拥有大量的设计指南,原则,模式和实践,以支持不同抽象层次的变更。我只会提到一些(已经超出GRASP):

  • - SOLID原则,特别是Open-Close原则(但它们都支持变更)
  • - Gang of Four(GoF)设计模式
  • - 封装
  • - Demeter法则
  • - 服务发现
  • - 虚拟化和容器化
  • - 异步消息传递,事件驱动架构
  • - 编排,舞蹈编排

由于今天更适合迭代软件开发过程,因为即使我们被迫改变一次,我们也可以得出结论,并以较低的成本为未来的变化做好准备。