模式: 针对特定问题场景的解决方案。
分成3个层次: 架构模式、设计模式、语言模式。
架构模式: 描绘了系统级结构特征,是软件架构的模板。
例如,
交互式的软件系统,一般采用的MVC架构模式。
处理数据流的软件系统,采用的 '管道-过滤器' 架构模式。
分层架构模式,最常见的是网络通信协议,它被分成了7个层次。
设计模式:描绘了子系统、模块之间的关系结构。
例如, 观察者模式、工厂模式、策略模式, 等等。
语言模式:描述了如何使用特定语言,来解决特定问题的方案。
对于不同语言,有些模式非常有用,但在另外一些语言中却毫无意义。
例如,针对资源回收释放的问题,c/c++可以使用引用计数器方案来管理资源, 但java提供了垃圾回收机制,根本就不需要这样的模式。