系统分析与设计作业_8

描述软件架构与框架之间的区别与联系

  • 软件架构;软件架构就是把系统分解为一些部件,描述这些部件的职责及它们之间的协作行为。软件架构是一组重要决策,其中涉及软件系统的组织,对结构元素及其组成系统所藉接口的选择,这些元素特定于其相互协作的行为,这些结构和行为元素到规模更大的子系统的组成,以及指导该组织结构(这些元素及其接口、协作和组成)的架构风格。

  • 软件框架

  • 框架是特定语言和技术的架构应用解决方案。

  • 其包含具体和抽象类,这些类定义了需要遵循的接口、需要参与的对象交互以及其他的不变式。
  • 框架是集成了你的代码和多种第三方解决方案的工具,让你聚焦 业务逻辑代码 而 不是技术实现。

软件架构是一种软件设计的策略,而软件框架则是为了实现某种软件规范而提供基础功能实现的软件产品。软件架构不是软件,它决定了软件系统结构的划分以及各子系统之间的关系,软件框架则实现了软件架构中的基础功能,软件架构的一些决策会在框架中得到体现。

以你的项目为例

绘制三层架构模型图,细致到分区

hw8

结合你程序的结构,从程序员角度说明三层架构给开发者带来的便利

可以很容易的用新的实现来替换原有层次的实现;不同层负责不同的层面安全性高。用户端只能通过逻辑层来访问数据层;项目结构更清楚,分工更明确,有利于后期的维护和升级;分层架构使的开发者可以更容易地扩展功能,添加新的子系统和模块。

研究 VUE 与 Flux 状态管理的异同

Flux 状态管理:

MVC 中,一个 Model 可以被多个 Views 读取或被多个 Controllers 进行更新。在大型应用中,一个 Model 可能使多个 Views 去通知 Controllers,并可能触发更多的 Model 更新,这样结果就会变得非常复杂。Flux 通过强制单向数据流来解决这个额问题。Flux 使 Views 查询 Stores(而不是 Models),用户交互触发的 Actions 被提交到一个 Dispatcher 中。当 Actions 被派发后,Stores 将会随之更新自己并且通知 Views 进行修改。这些 Store 当中的修改会进一步促使 Views 查询新的数据。即在相对独立的组件中,action -> state -> view 的单向数据流能得到保证。

VUE 状态管理:

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

  • 应用级的状态由store集中管理
  • 修改状态的唯一方式是commit同步的mutation
  • 异步逻辑放在action里

与 flux 对比,最大的区别是Vuex把action细分成了action和mutation,分别应对异步场景和同步场景,由store自身充当dispatcher(负责注册/分发action/(mutation)。即如果把 action 和 mutation 看作一层(Flux里的action),二者结构完全一致