面向对象设计是关乎软件的复用性、健壮和适应性所需要考虑的事情。要想设计出良好的代码,要比直接使用面向对象方法论考虑更多的环节。也就是说需要有效地使用一些面向对象设计技术。
许多计算机学者和参与者会开发出各种不同的组织概念和方法论,他们都是从面向对象软件的质量角度去考虑的,目的就是为了达到简明、正确和复用的效果。我们在这里统称为设计模式。
一种设计模式解决一个软件设计问题,一个模式会提供一项通用模板,也就是一个解决方案。虽然解决一个问题,之所以称为模式是因为可以应用在不同的情况中,一个问题会出现在不同环境里,但是解决这类问题会采用一种模式即可。
那么一个模式需要具备描述出一个解决方案中主要的那些元素,采用抽象的语言时要针对具体的一个问题,并且能够让众人听懂。这种抽象的描述语言不是高深的理论,而是通俗易懂。
描述内容中要包含模式的名字,正文部分要描写可以使用这个模式的情景,模板需要解说如何使用这个模式,最后效果内容要描述和分析这个模式会产生那些后果。
有许多设计模式,有时间会介绍一些与数据结构和算法部署方面的内容。总体来说会分为两部分:一个是解决算法设计问题的模式,另一个就是解决软件工程问题方面的模式。