开发团队讨论完,已到了吃午饭的时间。走到写字楼下,小H遇到老W:“我咋搞不清模型和模式呢?”
老W沉吟片刻,指着写字楼说:“咱就拿这个写字楼作比吧。”
小H……?
老W:“假设大楼设计之初,你就是设计师,你会忽略很多细节,勾画大楼的模型。模型抽象掉了很多细节,例如,你可以建一个塑料的大楼模型,招租时客户可以指着其中的一个窗户说,我想租这一间用来办公……”
小H:“模型是一种抽象……但模式也是抽象呀?”
老W:“它们的着力点不同。你看,人进这座写字楼走台阶,汽车进地下车库却要走‘抹坡儿’,可以说这就是两种模式。”
小H:“台阶?抹坡儿?是两种模式?”
老W:“对。具体而言是‘进楼’模式中的两种,就象GOF的创建模式、结构模式和行为模式一样。”
小H:“怎么讲?”
老W:“所谓模式,就是特定上下文中重复出现的问题的通用解决方案。你看,台阶模式要解决的是‘人进入大楼’的问题,上下文是大楼首层高于地面。而抹坡儿模式的上下文是车库在地下而不是在地面,抹坡儿模式解决了此种语境之下的‘汽车进车库’的问题。”
小H:“哦……。模型=某级抽象,而模式=解决方案 for 问题 in 上下文。”