软件系统开发中常用的软件架构风格包括:数据流风格、批处理系列、管道和过滤器、调用返回风格、主程序子程序、面向对象风格、层次结构风格、独立构建风格、进程通信、事件驱动系统隐式调用、虚拟机风格、解释器、基于规则的系统、仓库风格、数据库系统、黑板系统、超文本系统。 其中各个架构风格例子与理解
-
数据流风格:数据流风格是基于数据流的组织方式,将系统划分为一系列的数据处理模块,模块之间通过数据流进行通信。一个常见的例子是UNIX的管道命令,其中每个命令都是一个数据处理模块,通过管道将输入数据传递给下一个命令进行处理。
-
批处理系列:批处理系列是一种将一系列操作按照预定顺序自动执行的架构风格。一个常见的例子是批处理任务调度系统,其中一组任务按照指定的顺序自动执行,可以实现自动化的数据处理、报表生成等功能。
-
管道和过滤器:管道和过滤器是一种将系统划分为一系列的过滤器模块,并通过管道将数据从一个过滤器传递到下一个过滤器进行处理的架构风格。一个常见的例子是UNIX的管道命令,其中每个命令都是一个过滤器模块,通过管道将输入数据传递给下一个命令进行处理。
-
调用/返回风格:调用/返回风格是一种将系统划分为一组相互调用的模块,并通过调用和返回来实现模块之间的通信的架构风格。一个常见的例子是面向过程的程序设计,其中各个过程可以相互调用,并通过参数的传递来实现数据的传递和处理。
-
主程序/子程序:主程序/子程序是一种将系统划分为一个主程序和一组子程序的架构风格,主程序负责协调和控制子程序的执行。一个常见的例子是面向过程的程序设计,其中主程序调用子程序来完成具体的任务。
-
面向对象风格:面向对象风格是一种将系统划分为一组相互关联的对象,并通过消息传递来实现对象之间的通信的架构风格。一个常见的例子是面向对象的程序设计,其中各个对象通过方法调用来相互通信和协作。
-
层次结构风格:层次结构风格是一种将系统划分为一组相互依赖的层次结构的架构风格,每个层次负责完成特定的功能。一个常见的例子是MVC(Model-View-Controller)架构,其中模型层、视图层和控制层分别负责数据处理、界面展示和用户交互。
-
独立构建风格:独立构建风格是一种将系统划分为一组相互独立的模块,并通过接口进行通信的架构风格。一个常见的例子是模块化的程序设计,其中各个模块可以独立编译和测试,并通过接口进行数据的传递和交流。
-
进程通信:进程通信是一种将系统划分为多个并发执行的进程,并通过进程间的通信机制来实现数据的传递和共享的架构风格。一个常见的例子是多进程的并行计算系统,其中多个进程可以并发执行,并通过进程间的通信来共享数据和协作计算。
-
事件驱动系统(隐式调用):事件驱动系统是一种将系统划分为一组事件处理模块,并通过事件的触发和处理来实现系统功能的架构风格。一个常见的例子是GUI(图形用户界面)应用程序,其中用户的操作会触发不同的事件,系统通过事件处理模块来响应和处理这些事件。
-
虚拟机风格:虚拟机风格是一种将系统划分为一个虚拟机和一组虚拟机程序的架构风格,虚拟机负责管理和执行虚拟机程序。一个常见的例子是Java虚拟机,其中Java虚拟机负责执行Java程序。
-
解释器:解释器是一种将系统划分为一个解释器和一组解释器程序的架构风格,解释器负责解释和执行解释器程序。一个常见的例子是Python解释器,其中Python解释器负责解释和执行Python程序。
-
基于规则的系统:基于规则的系统是一种将系统划分为一组规则和一组规则引擎的架构风格,规则引擎负责根据规则来进行推理和决策。一个常见的例子是专家系统,其中规则引擎根据用户提供的规则来进行问题求解和决策支持。
-
仓库风格:仓库风格是一种将系统划分为一个数据仓库和一组数据处理程序的架构风格,数据仓库负责存储和管理数据,数据处理程序负责对数据进行处理和分析。一个常见的例子是商业智能系统,其中数据仓库存储和管理企业的各种数据,数据处理程序对数据进行分析和报表生成。
-
数据库系统:数据库系统是一种将系统划分为一个数据库和一组数据库管理程序的架构风格,数据库管理程序负责对数据库进行管理和操作。一个常见的例子是关系数据库系统,其中数据库管理程序对关系数据库进行管理和查询。
-
黑板系统:黑板系统是一种将系统划分为一个黑板和一组知识源和问题求解程序的架构风格,知识源负责向黑板上发布知识,问题求解程序负责根据黑板上的知识进行问题求解。一个常见的例子是协同问题求解系统,其中多个问题求解程序通过共享黑板上的知识来进行协同求解。
-
超文本系统:超文本系统是一种将系统划分为一组相互关联的超文本文档和一组浏览器程序的架构风格,浏览器程序负责解析和展示超文本文档。一个常见的例子是万维网,其中超文本文档通过超链接相互关联,用户通过浏览器来浏览和访问超文本文档。
原文地址: http://www.cveoy.top/t/topic/i7vm 著作权归作者所有。请勿转载和采集!