架构风格架构风格定义了一个术语表,用于描述一个系统和一组规则来指导系统的构建。架构风格反映了域中许多系统共享的结构和隐喻属性,并指导如何有效地将各个组件组织成一个完整的系统。数据流式批处理大量整体数据,无需用户交互。组件是一系列固定顺序的计算单元,组件之间仅通过数据传递进行交互。每个处理步骤都是一个独立的程序,每个步骤都必须在上一个步骤完成后开始,数据必须完整并整体交付。管道过滤器流数据,弱用户交互每个组件都有一组输入和输出。该组件读取输入数据流,在内部进行处理,然后生成输出数据流。这个过程通常是通过对输入数据流进行转换或计算来完成的,包括通过计算和添加信息来丰富数据,通过集中和删除来减少数据,通过改变记录方式来转换数据,以及增量转换数据。这里的组件称为过滤器,连接器是数据流传输的管道,将一个过滤器的输出传递到另一个过滤器的输入。Call-returnstyle主程序子程序面向流程的单线程控制,将问题分成若干个处理步骤。组件是主程序和子程序,子程序通常可以合成为模块。过程调用充当交互机制,即充当连接器。调用关系是有层次的,其语义逻辑表明,主程序的正确性取决于其调用的子程序的正确性。面向对象的方法调用组件是对象,对象是抽象数据类型的实例。在抽象数据类型中,封装了数据的表示及其相应的操作,对象的行为体现在它接受和请求的动作中。连接器是对象交互的方式。对象是通过函数和过程调用进行交互的层次结构。层与层之间的方法调用组件被组织成层次结构。连接器由确定层如何交互的协议定义。.每一层都为上层提供服务,并使用下一层的服务,并且只能看到与其相邻的层。通过层次结构,可以将一个大问题分解为若干递进的小问题逐级解决,隐藏问题的复杂性。修改某一层最多会影响相邻的两个层(通常只影响上层)。独立组件式进程通信组件是一个独立的进程,连接器是消息传递。组件通常是命名过程,消息传递的方式可以是点对点、异步或同步、远程过程(方法)调用等。事件驱动(隐式调用)组件不直接调用过程,而是触发或广播一个或多个事件。组件中的进程注册在一个或多个事件中,当一个事件被触发时,系统会自动调用注册在该事件中的所有进程。事件的触发导致另一个模块中的过程调用。这种风格的组件是匿名过程,它们之间的互连通常是通过过程之间的隐式调用来实现的。主要优点是对软件复用提供了强有力的支持,为组件的维护和演化带来便利;它的缺点是组件放弃了对系统计算的控制。虚拟机风格的解释器解释器通常包括一个完成解释工作的解释引擎,一个包含待解释代码的存储区,一个记录解释引擎当前工作状态的数据结构,以及一个记录解释器工作状态的数据结构。解释和执行源代码的进度。数据结构。解释器式软件包含一个虚拟机,可以模拟硬件和一些关键应用程序的执行过程,但缺点是执行效率比较低。规则系统基于规则的系统包括规则集、规则解释器、规则/数据选择器和工作记忆,通常用于人工智能和决策支持系统领域。仓库式数据库系统组件主要有两种,一种是中央共享数据源,保存当前系统的数据状态;另一种是多个独立的处理单元,它们对数据元素进行操作。黑板系统包括知识源、黑板和控件三部分。知识源由几个不同的独立计算单元组成,它们提供解决问题的知识。知识源响应黑板的变化,只修改黑板;黑板是一个全局数据库,包含了问题域解空间的所有状态,是知识源交互的唯一媒介;知识源的响应受黑板状态变化的控制。黑板系统常用于没有解决问题(信号处理、问题规划、编译器优化等)确定性算法的软件中。超文本系统的组件之间以网络链接的形式相互连接,用户可以根据人类的联想思维方式任意跳转至相关组件。超文本是一种非线性的网络信息组织方式,它以节点为基本单位,链接为节点之间的关联。超文本系统普遍用于因特网领域。“你跟我说了这么多,那好看的照片呢?”“别着急,最好的总是在你意想不到的时候出现。"图LRA【软件架构风格】-->B(数据流风格)A-->C(调用返回风格)A-->D(独立组件风格)A-->E(虚拟机风格)A-->F(仓库式)B-->B1(批处理序列)B-->B2(流水线过滤器)C-->C1(主程序子程序)C-->C2(面向对象)C-->C3(hierarchy)D-->D1(进程通信)D-->D2(事件驱动)E-->E1(解释器)E-->E2(规则系统)F-->F1(数据库系统)F-->F2(黑板系统)F-->F3(超文本系统)最后,感谢大家的喜欢和关注,帅气又漂亮。
