《设计模式》笔记1.1-What is a Design Pattern?

其实也不能说刚刚开始接触软件开发,但其中的一些关键性概念往往知其然不知其所以然,例如为什么我们要面向对象、为什么要建立工厂模式、为什么要多态等等。所以找来了这本《设计模式》——大家公认的经典。目标是今年12月31日之前啃完,并记录笔记,以此博客为证。

1.1 What is design pattern?什么是设计模式呢?

Christopher Alexander says,"Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice".

克里斯多夫·亚历山大是加州伯克利大学的终身教授,同时也是著名的建筑师,他在建筑领域提出了设计模式的概念。所谓模式:是描述我们环境中不断重复产生的问题,然后提取这些问题的解决方案的核心,通过这种方式,我们可以无数次地利用这种方案,而不必再重新设计解决方案。

        一般说来,一种模式有四个基本元素:

         1、模式名称:The pattern name is a handle we can use to describe a design problem, its solutions, and consequences in a word or two.

为一个模式命名将立即增加我们的设计描述词汇,使得我们能在更高的抽象层次上进行设计。有了这些模式名称以后,我们在与同事的交流中会更加方便,进行文档编写时也不用连篇累牍的介绍一个词汇能描述的信息。并且使得不同模式之间取舍的权衡更加简单。

2、问题:The problem describes when to apply the pattern. It explains the problem and its context.

问题可能描述的是具体的设计问题,例如如何以对象的方式呈现算法;也可能描述的是预示着不灵活设计征兆的类或对象结构。有时,问题描述包括在合理应用一种模式前必须满足的条件清单。

3、解决方案:The solution describes the elements that make up the design, their relationships, responsibilities, and collaborations.

解决方案并非描述的是具体问题的设计和实现,因为一种模式就像一个应用于很多不同情形的模板。相反,模式提供的是设计问题的抽象描述,以及如同利用通用的对象和类的组合、交互来解决问题。

4、成果:The consequence are the results and trade-offs of applying the pattern. Though consequences are often unvoiced when we describe design decisions, the are critical for evaluating design alternatives and for understanding the costs and benefits of applying the pattern.

成果是我们采用某种模式后的花费和收获的权衡,通过这种权衡,我们才能对模式有更深刻的理解和更佳的利用。

你可能感兴趣的:(Design,Patterns)