软件体系结构风格与模式
软件体系结构是软件系统的高层抽象,描述了系统的整体架构和组件之间的交互关系。软件体系结构风格和模式是软件设计人员多年工作经验的总结,抽象出了许多常见的系统构建模式。
软件体系结构风格(Architectural Style)是一种体系结构风格,以结构组织模式定义了一个系统家族,规定了构件和连接件类型的术语、一组约束对它们组合方式的规定,以及一个或多个语义模型,规定了如何从各成分的特性决定系统整体特性。
软件体系结构模式(Architectural Pattern)是一种软件体系结构模式,是对某个具体环境下问题的结构性解决方法。模式既是存在于现实世界中的事物,又是告诉我们如何以及何时创造该事物的规则。模式既是过程,又是事物;既是活生生的事物的描述,又是创造该事物的过程的描述。
软件体系结构的构建模式有管道-过滤器风格、面向对象风格、事件驱动风格、分层风格、数据共享风格、解释器风格、反馈控制环风格、异构风格的集成等多种风格。每种风格都有其特点和优点,可以满足不同的系统设计需求。
管道-过滤器风格是一种常见的软件体系结构风格,在这种风格下,每个功能模块都有一组输入和输出。功能模块称作过滤器(filters);功能模块间的连接可以看作输入、输出数据流之间的通路,所以称作管道(pipes)。管道-过滤器风格的特性之一在于过滤器的相对独立性,即过滤器独立完成自身功能,相互之间无需进行状态交互。
管道-过滤器风格的优点是设计者可以将整个系统的输入、输出特性简单的理解为各个过滤器功能的合成。同时,管道-过滤器风格也使得系统的维护和升级变得更加容易,因为每个过滤器都是独立的,可以单独地维护和升级。
在 Unix 系统中,管道过滤器结构是一种常见的设计模式,例如 ls –al | grep my。类似的,在 DOS 中,管道命令也是非常常见的,例如 dir | more。
软件体系结构风格和模式是软件设计人员多年工作经验的总结,抽象出了许多常见的系统构建模式。不同的软件体系结构风格和模式可以满足不同的系统设计需求,帮助设计人员更好地设计和实现软件系统。