这几天看到一本<<面向模式的软件体系结构>>一书,说到软件设计中的模式分三种,觉得有点意思,记下来:
1.体系结构模式:architectural pattern 表示一个软件系统的基本结构化组织,它提供一套预定义的子系统,规定他们的职责,并明确组织他们之间关系的规则。
可以看出体系结构模式是软件设计中最高层的指导模式,比如熟悉的MVC就属于体系结构模式的一种,它为交互式系统的设计提供了一个框架结构,使得交互式系统的设计实现变得简单。
2.设计模式:一般的设计模式描述的是某一特定问题的解决方案,使得我们可以复用这些抽象出来的核心去解决我们在实现系统或子系统时遇到的问题,而不必做重复的劳动。比如Abstract Factory 模式提供了当一个系统需要有多种产品(抽象产品类)构建,而每一种产品可能又会有多种产品系列(具体产品)时的一个很好的解决方案,这样,在开发软件系统时如果存在这样的situation,就可以得到很好的快速的解决。
3.惯用法:惯用法是针对具体的编程语言的底层模式,描述如何使用具体语言特征来实现某些功能或组件之间的关系。
复用之前的解决方案的思想,快速高效地开发软件系统是学习模式的目的所在。