软件设计中模式与力量的决策艺术
设计是一个思考过程,也是一个决策过程。它能帮助我们组织思路,运用软件解决问题,降低风险,适应变化而不过度设计,让设计更清晰,创造持久的投资回报价值。我们希望找到方法,让大家在设计决策中表现得更出色。即便 “模式是力量的集合” 这一概念有一定道理,但很多人可能仍会怀疑其实际用处,毕竟相关术语听起来很理论化。接下来将展示从这个角度看待模式,如何能帮助我们更可靠地做出更好的决策。
不断演进设计中的决策
有一种实践是封装构造过程,以此高效且低风险地应对不可预见的变化。通常的做法是将new关键字封装在一个方法中,然后用这个方法替代new,这样就能灵活改变实际实例化的对象。不过在 Java 或 C# 等常用语言中,直接使用new无法实现这一点。
模式并非简单的可复用解决方案,而是软件开发领域早期积累的智慧集合。其价值在于帮助我们理解待解决的问题,明确已知信息的优先级,以及在设计时考虑关键差异。有一些实践能帮助我们应对未来可能出现的不可预见的变化,也有一些模式能在变化发生时,帮助我们做出妥善处理的决策。然而,很多时候解决一个问题不止一种方式,一个场景中也可能有多种模式适用,这时就需要一个好方法来帮我们抉择。也就是说,模式的动机与问题本质之间的联系,有时会指向多个潜在的设计方向,那该如何选择正确的路径呢?
克里斯托弗·亚历山大与力量
克里斯托弗·亚历山大在其著作《建筑的永恒之道》中,提出了庭院模式,用以展示建筑中反复出现的高质量模式。他的工作推动了软件领域的模式运动。但亚历山大作品中的一些微妙之处,在软件设计模式思想的初