系统分析与设计——lesson13

描述软件架构与框架之间的区别与联系
参考软件架构设计学习总结(17):架构和框架的区别 、lesson13课件和教材

软件框架是领域分析结果的软件框架是领域分析结果的软件化,是领域内最终应用系统的模板。
框架是特定语言和技术的架构应用解决方案。

软件框架是某种应用的半成品,可以理解为一组组件,是可以复用的设计,在一个给定的问题领域内,用来实现一个应用程序的部分设计与代码实现。软件框架关键在于框架内对象的交互模式和控制流模式,使得编程人员可以在一个通用功能已经实现的基础上,进行针对特定软件实现的系统开发。“具体的应用通过重写子类或组装对象来支持应用专用的行为。”

  • 框架是具体语言和技术相关的
  • 框架是一种或多种架构的组合的实现
  • 框架是集成了你的代码和多种第三方解决方案的工具,让你聚焦 业务逻辑代码 而 不是技术实现

架构是一组重要决策,其中涉及软件系统的组织,对结构元素及其组成系统相关接口的选择,这些元素特定于其相互协作的行为,这些结构和行为元素到规模更大的子系统的组成,以及指导该组织结构(这些元素及其接口、协作和组成)的架构风格。【BRJ99】

区别和联系:

  1. 框架是软件,架构不是软件。框架是一种特殊的软件,是系统或子系统的半成品,框架中的一些服务可以被所要求的应用系统直接或者间接的调用。软件架构是关于软件如何设计的决策,架构决策涉及如何将软件系统分解成不同的部分、各部分之间的静态结构关系和动态交互关系等。
  2. 一个架构可能应用了多个框架,架构的决策往往体现在应用框架中。

以你的项目为案例

  • 绘制三层架构模型图,细致到分区
  • 结合你程序的结构,从程序员角度说明三层架构给开发者带来的便利

系统分析与设计——lesson13_第1张图片

便利:

  • 每个层或包的职责是清晰的,模块化并可扩展的
  • 提供了隐式的程序复用准则;
  • 每个层涉及的技术是明确的。这使得程序员可以通过快速培训上岗;
  • 通过依赖估计项目变化产生的工作量;
  • 开发人员可以只关注整个结构中的其中某一层;
  • 可以很容易的用新的实现来替换原有层次的实现;
  • 项目结构更清楚,分工更明确,有利于后期的维护和升级

研究 VUE 与 Flux 状态管理的异同
参考浅谈前端状态管理(下)
关于Flux,Vuex,Redux的思考
[译] Flux 入门

首先明确,

Flux是一种前端状态管理架构思想,专门解决软件的结构问题。基于Flux的设计思想,出现了一批前端状态管理框架。在这些框架里,当前最热门的莫过于Redux和Vuex了。


在vuex出现之前,vue里面的状态是属于‘单向数据流’,解决不了多个组件共享状态,所以vuex应运而生

Vue 应用中原始数据对象的实际来源 - 当访问数据对象时,一个 Vue 实例只是简单的代理访问。可以参考类 Flux 状态管理的官方实现,说明了Vuex的应运而生。

所以比较一下Flux和Vuex:

Flux数据流的顺序是:
View发起Action->Action传递到Dispatcher->Dispatcher将通知Store->Store的状态改变通知View进行改变
这里写图片描述

Vuex是专门为Vue设计的基于Flux架构的状态管理框架,Vuex数据流的顺序是:
View调用store.commit提交对应的请求到Store中对应的mutation函数->store改变生成新的state(vue检测到数据变化自动渲染)
系统分析与设计——lesson13_第2张图片

你可能感兴趣的:(系统分析与设计)