面向交互的体系结构的主要目标是将用户的交互与数据抽象和业务数据处理分开。面向交互的软件架构将系统分解为三个主要分区:
面向交互的架构有两种主要风格——模型-视图-控制器 (MVC) 和表示-抽象-控制 (PAC)。MVC 和 PAC 都提出了三个组件分解,并用于交互式应用程序,例如具有多个对话和用户交互的 Web 应用程序。它们在控制和组织流程上有所不同。PAC 是基于代理的分层架构,但 MVC 没有明确的分层结构。
模型-视图-控制器 (MVC)
MVC 将给定的软件应用程序分解为三个相互关联的部分,这些部分有助于将信息的内部表示形式与呈现给用户或从用户接受的信息分开。
模型
模型是 MVC 的核心组件,它直接管理应用程序的数据、逻辑和约束。它由数据组件组成,这些组件维护原始应用程序数据和接口的应用程序逻辑。
视图
视图可用于以图形形式(如图表或图表)表示任何信息输出。它由提供数据可视化表示的表示组件组成
控制器
控制器接受输入并将其转换为模型或视图的命令。它由输入处理组件组成,这些组件通过修改模型来处理来自用户的输入。
MVC -I
它是MVC架构的简单版本,其中系统分为两个子系统:
MVC-I 体系结构
模型模块将任何数据更改通知控制器视图模块,以便相应地更改任何图形数据显示。控制器还会对更改采取适当的措施。
控制器视图和模型之间的连接可以设计为订阅-通知模式(如上图所示),其中控制器视图订阅模型,模型通知控制器视图任何更改。
MVC - II
MVC–II 是 MVC-I 体系结构的增强功能,其中视图模块和控制器模块是分开的。模型模块通过提供数据库支持的所有核心功能和数据,在 MVC-I 中发挥着积极作用。
视图模块提供数据,而控制器模块接受输入请求,验证输入数据,启动模型、视图、它们的连接,并调度任务。
MVC-II 体系结构
MVC 应用程序
MVC 应用程序对于交互式应用程序非常有效,在这些应用程序中,单个数据模型需要多个视图,并且易于插入新的或更改的界面视图。
MVC 应用程序适用于模块之间有明确划分的应用程序,以便可以指派不同的专业人员同时处理此类应用程序的不同方面。
优势
缺点
表示-抽象-控制 (PAC)
在PAC中,系统被安排成许多合作代理(三合会)的层次结构。它是从 MVC 开发的,除了支持交互要求外,还支持多个代理的应用程序要求。
每个代理都有三个组件 -
PAC 架构类似于 MVC,从某种意义上说,表示模块类似于 MVC 的视图模块。抽象模块看起来像 MVC 的模型模块,控制模块类似于 MVC 的控制器模块,但它们在控制流程和组织流程上有所不同。
每个代理中的抽象组件和表示组件之间没有直接连接。每个代理中的控制组件负责与其他代理的通信。
下图显示了 PAC 设计中单个代理的框图。
具有多个代理的 PAC
在由多个代理组成的 PAC 中,顶级代理提供核心数据和业务逻辑。底层代理定义详细的特定数据和表示。中级或中级代理充当低级代理的协调者。
下图显示了参与 PAC 的多个代理。
应用