论设计模式

来源:互联网 发布:手机淘宝到家怎么没了 编辑:程序博客网 时间:2024/06/05 17:00

   与人聊了聊有关设计模式,遂记下我当时的观点。以下所称的模式皆是设计模式的简称,而不是其他含义的模式。也就是有人描述过的那种每次应用时都有不同,但是又有着似曾相识味道的东西。

   定义模式的角度应该从方法学角度,而不是人们通常习惯的逻辑角度,更不是程序员喜欢的符号逻辑。它的表述应该是“做XX这种事,XX做会有XX好处”;而不是“在XX情况下,应该XX做”。

    举一个简单的例子,从这里到火车站要30分钟,3点钟开车,你决不会2:30出发。这个模式不是说在这种情况下,你一定要提前多少时间出发;而是说在赶火车这件事上,打出时间余量会有好处,在出现堵车的情况下你也不会误事。这个模式通常也会应用到赶飞机、抢位置上,因此更准确的说:在有时间点限制的事上,打出时间余量会有好处。

    对模式的描述或者说定义,还是在进行中的不断清晰着。这清晰(确定)能到什么程度,还很难说。比如,上边举例用的模式还可以进一步精化。为什么一定要赶到一个时间点之前呢,是因为错过了这一点会有很大的损失,到达的时间与损失两者的函数在这一点上有一个量子跃迁。这个模式在更广的意义上可以称作:要在损失激增的时间点之前完成某事,最好留出一定的时间余量。

    但是随着描述的精确,指导意义就被减弱了。谁能在赶去看电影前想到上一段的最后一句呢?如果失去了方法学上的指导意义,那模式还能用来做什么呢?