想象本身不需要什么前提,三岁的孩子也会展开丰富的想象。问题是,当你要针对一个特定目标展开想象的时候,必须具备一些特定的前提条件。换句话说,由于隐喻适用于定制软件开发等,所以在转换视角来观察软件时,设计者必须具备一定的生活阅历。为什么呢?因为,只有生活本身,才能为隐喻提供取之不竭的素材。例如,经历过农村生活的人,会了解在合适的季节种植合适的作物,他们会购买种子和化肥、在合适的土壤中播种、在秧苗长到一定的阶段除草、遭受虫害时去寻找合适的农药、在成熟的季节去收割、对作物进行简单加工后去售卖。熟悉这个过程并对它进行一些泛化的思考,你就会发现,这个过程完全可以作为另一个过程的隐喻。由于隐喻的灵感通常来自生活实践中的常识,所以从这个角度上来看,
生活阅历是必须具备的前提条件。除了生活阅历之外,一定的知识积累也是建立隐喻的必要条件。 由于隐喻要为定制软件开发所用,因此有必要使用相关的知识对想象进行修正。相关的知识其实都是一些基于隐喻的元素,掌握一项技术有点像在大脑中添加一个隐喻,例如,观察者模式。而使用一项技术,就是在应用一个隐喻。
架构模式是对架构的进一步抽象。由于抽象进入了较高的层次,架构模式逐渐成为软件行业中的语言元素。类似于自然语言,当我们大连软件开发提到天空、海洋、陆地、山川、森林、河流时,没有人再会去探究这些词汇的含义,因为这些词汇本身构成了我们的主观世界。同样,当我们提到三层架构、分布计算、点对点、插件、SOA、MVC时,也很少需要过多解释,除非我们还处在企业应用领域软件的语言入门期。仔细回想一下,我们在讨论架构设计场景时,那些架构模式是我们进行沟通的基本语言。这非常像谈论房子时的场景,我们总是会使用一些基本语言来进行沟通,例如,我们会说自己的房子是砖混结构还是钢筋混凝土框架结构等。
架构模式,为定制软件开发架构设计指定了范围。不过,它对于软件开发的约束,也仅限于此。有时候,我们需要反省内心,体验这些模式是否已经成为我们思维的一部分;有时候,我们致远软件开发www.soft8.com.cn需要远观,观察这些模式是否已经自然地融入了我们的系统。