系统分析与设计-homework-8

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


软件架构定义:软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口来实现。

软件框架定义:软件框架是面向领域(如 ERP、计算领域等)的、可复用的“半成品”软件,它实现了该领域的共性部分,并提供了一些定义良好的可变点以保证灵活性和可扩展性。也就是说软件框架是领域分析结果的软件化,是领域内最终应用的模板,是特定语言和技术的架构应用解决方案。

区别:

软件架构用相对抽象的概念来描述部件的功能、部件与部件之间的协作,从而大致地描述出系统完整的运作流程。所以它不是实际系统的一部分。同时,其首要目的是指导一个软件系统的实施与开发。

框架是是实际系统的一部分。框架使用特定的语言和技术描述了架构中各部件功能的具体实现。通过使用框架,让开发者聚焦于业务逻辑代码而不是技术实现。框架的首要目的则是复用。

联系:

软件架构是引导如何设计软件框架的重要决策。它决定了软件系统如何划分,在一定程度上描述了被划分的各个部分之间的静态、动态关系。软件架构的决策体现在软件系统的框架中。

软件架构指导了框架的设计,框架通过特定的语言和技术实现了软件架构。


以你的项目为案例

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


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

  1. 这有助于降低我们程序的耦合性,如果之后对程序有所改动,也大大降低了重构时的难度,给重构奠定了一个基础。
  2. 三层架构有利于系统的分工,方便各个功能的实现,在过程中可以允许三层同时开发,制定相应的接口,大大降低开发时间的冗余。

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

Vue是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

vuex 包含有五个基本的对象:

  • state:存储状态。
  • getters:派生状态。getters接收state作为其第一个参数,接受其他 getters 作为第二个参数,如不需要,第二个参数可以省略如下例子:
  • mutations:提交mutation是更改Vuex中的store中的状态的唯一方法。mutation必须是同步的,如果要异步需要使用action。
    每个 mutation 都有一个字符串的事件类型 (type) 和 一个 回调函数 (handler)。这个回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数,提交载荷作为第二个参数。(提交荷载在大多数情况下应该是一个对象)提交荷载也可以省略的。
  • actions:Action 类似于 mutation,不同在于:
  1. Action 提交的是 mutation,而不是直接变更状态。
  2. Action 可以包含任意异步操作。
  • modules:使用单一状态树,导致应用的所有状态集中到一个很大的对象。但是,当应用变得很大时,store 对象会变得臃肿不堪。
    为了解决以上问题,Vuex 允许我们将 store 分割到模块(module)。每个模块拥有自己的 state、mutation、action、getters、甚至是嵌套子模块——从上至下进行类似的分割。

总结:

state => 基本数据 
getters => 从基本数据派生的数据 
mutations => 提交更改数据的方法,同步
actions => 像一个装饰器,包裹mutations,使之可以异步。 

modules => 模块化Vuex

数据流图:


具体流程:

VueComponents—>(call)Action——>(dispatch)Mutations——>(mutate)State——>(update)VueComponents


Flux是Facebook用于构建客户端Web应用程序的一个系统架构。它通过利用单向数据流来补充React的可组合视图组件。它更像是一种模式,而不是一个正式的框架。

Flux将一个应用分成四个部分。

  • View: 视图层 
  • Action(动作):视图层发出的消息(比如mouseClick) 
  • Dispatcher(派发器):用来接收Actions、执行回调函数
  • Store(数据层):用来存放应用的状态,一旦发生变动就提醒Views要更新页面

数据流图:


具体流程:

view发起Action(自发的action)->Action传递到Dispatcher->Dispatcher通知Store->Store的状态改变引发View状态改变


相同点:

都是由状态驱动的视图组件。

不同点:

数据流方式不同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值