怎样使用设计模式的一点见解。
面向对象设计的优点是为软件模型和现实模型提供了一个好的路径。在现实中,我们只有协调好各种不同对象之间的关系,才能让对象之间友好的相处。在软件中,我们同样也需要这种协调。设计模式就是协调这种关系的一些已证明的在某些情境下可用的较优解决方法。
举个例子,人生病了(当然,最好不是SARS)要去医院,如果是日常小病,随便找个医院,如果是某种特殊的病,就会去选择治这种特殊病的医院。这时,人会先估计自己的病,然后找到相应种类较合适的医院(可以查地图或其它)。这在软件中,是策略模式的体现。因为人最初只是和抽象的医院建立关系,而非某一具体医院,只在确定自己的病种类后,才选择具体的医院。而我们查自己所需的医院时,可以是自己知道的,也可以是查地图,还可以是问别人的,这种获取医院地址的方法显然可以用工厂模式来解决。
将软件之间的关系处理得像在日常中的事物的关系一样的融洽,这或许是面向对象设计的终极目标。