什么是设计模式
面向对象的设计是比较困难的,一个设计应该是具有针对性的且对于未来有一定通用性,先找到相关的对象在以适当的粒度对它们归类,在对每个类定义接口和继承层次,最后确定每个对象之间的联系。有经验的设计者的确可以做出好的设计,但是对于不那么熟练的设计者在面对众多的选择时会感到无法下手。而且不是所有的问题都需要从头开始解决,有些时候会使用之前使用过的解决方案,就像代码的复用一样,每当找到一个好的方案时会一遍又一遍的使用,这些一遍又一遍使用的方案能够解决特定的问题,使设计更加灵活优雅。
这些方案帮助设计者将新的设计建立在以往的工作基础上,复用以往的各种设计, 这就体现了设计经验的重要性,所以设计模式是一种经验能够使新手更加简单的使用前人的经验和方案。而将这些经验转换为能够被人们有效利用的形式,这个形式就是模式。将以证实的技术大范围的使用,会使新的开发者理解其设计思路且帮助开发者做出有利于系统复用的选择,避免设计损害了系统复用性。