设计模式(六)——组合起来:用模式思考

来源:互联网 发布:福州临床数据分析员 编辑:程序博客网 时间:2024/06/05 19:26

设计模式(六)——组合起来:用模式思考

 

       Alexander 的《建筑的永恒之道》,讲的是建筑,却对我们软件设计仍有帮助,为什么?因为他描述了一种泛型,一种设计师都应该遵循的泛型。他告诉我们,要设计出一个有活力的建筑,需要有无名特质,而单靠机械的将不同部件进行组合,是不可能达到这个目标的。任何一个美好的事物都不是由各个部分进行组装的方式而形成的。正如你需要一朵花,你不可能用花瓣和花蕾去粘成一朵花,这样的花是不真实,不自然的。你需要做的是从一颗种子开始,不断顺应他的需要,使他不断成长,继而成为一朵花。

        因此,要构建一个复杂而又有生命力的系统或建筑,正确的方式应该是先从一个简单的描述开始,然后逐步深入,不断加入信息,加入的同时又要保证对于总体环境的适应,使其越来越复杂,越来越满足人们的需求。

        但是,就算是由简单的设计开始,却也很容易陷入某个细节的设计上。为什么?因为如果不去详细的设计它,你很难知道他在整个项目中所处的地位,会对其他地方造成怎样的影响。我们也很难说明这个部分所需要的设计是什么样的。于是,我们又开始了从局部到整体进行组合的设计方式。

        怎么办?使用模式进行思考。模式定义了问题域中实体间的关系,他为我们提供了一种组织问题域中实体的方式。那么,当思考问题时,我们从整体出发,但从整体出发的前提是我们考虑过系统的各个实体,以及实体间的关系。

        首先找出所涉及到的模式。

       然后考虑最外层的部分应该使用何种模式。

       继而对系统内部进行模式的选择与设计(内部的模式是能够自我调整以适应其背景的,是为其背景服务的)。

       不断重复直到设计完成。

       最后添加实现的细节。

       这种方式,由外到内,由整体到局部,并使用模式来进行各个部分间的协调。“用模式思考”,似乎确实能够让自己的思路更加清晰,更有益于做出一个好的设计。

原创粉丝点击