描述软件架构与框架之间的区别与联系:
(1)软件架构:是一个系统的草图,描述的对象是直接构成系统的抽象组件,各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口来实现。
(2)软件框架:面向某领域(包括业务领域如ERP和计算领域如GUI)的、可复用的“半成品”软件,它实现了该领域的共性部分,并提供一系列定义良好的可变点以保证灵活性和可扩展性。可以说,软件框架是领域分析结果的软件化,是领域内最终应用系统的模板。a. 区别:架构不是软件,框架是一种特殊的软件
(1)架构不是软件,而是关于软件如何设计的重要策略。软件架构决策设计到如何将软件系统分解成不同的部分、各部分之间的静态结构关系和动态交互关系等。经过完整的开发过程之后,这些架构决策将体现在最终开发出的软件系统中;当然,引入软件架构之后,整个开发过程变成了“分两步走”,而架构决策往往会体现在框架之中。
(2)框架是一种特殊的软件,它并不能提供完整无缺的解决方案,而是为你构建解决方案提供良好的基础。框架是半成品。典型地,框架是系统或子系统的半成品;框架中的基础服务被最终应用系统直接调用,而框架中的扩展点是供应用开发人员定制的“可变化点”。b. 联系:
软件架构是引导如何设计软件框架的重要决策。它决定了软件系统如何划分,在一定程度上描述了被划分的各个部分之间的静态、动态关系。软件架构的决策体现在软件系统的框架中。以你的项目为案例:
绘制三层架构模型图,细致到分区:
结合你程序的结构,从程序员角度说明三层架构给开发者带来的便利:
a. 三层架构(UI层、Domain层、Technical层)使程序不同层之间的耦合度降低,可以充分把软件开发任务分解,有利于团队合作开发。开发人员可以只关注整个结构中的某一层,有利于控制软件开发的质量,充分发挥版本控制和单元测试。
b. 三层架构的软件适应性很强,需求变动时可以很快更改代码,因此代码的复用性高,降低了软件的开发成本。研究 VUE 与 Flux 状态管理的异同:
(1)异:主要体现在对数据流的管理方式不同
VUE:状态管理由Vuex实现,它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
Vuex的核心包括:
a. state:定义了应用状态的数据结构,同样可以在这里设置默认的初始状态
b. getters:从state中派生出状态,比如获取state中todoLists的总数
c. mutations:唯一允许更新应用状态的地方
d. actions:定义提交触发更改信息的描述,在actions中可做任意异步操作Flux:数据在应用中单向流动,即所谓的“单向数据流”。
1)Flux将应用分成四个部分:
a. View:视图层
b. Action(动作):视图层发出的消息(比如mouseClick)
c. Dispatcher(调度器):用来接收Actions、执行回调函数
d. Store(数据层):用来存放应用的状态,一旦发生变动,就提醒Views要更新页面
2)Flux最大的特点就是数据的单向流动,过程如下:
a. 用户访问 View
b. View 发出用户的 Action
c. Dispatcher 收到 Action,要求 Store 进行相应的更新
d. Store 更新后,发出一个”change”事件
e. View 收到”change”事件后,更新页面(2)同:Flux 是一种源于MVC架构无法满足复杂的扩展需求而产生的架构思想,专门解决软件结构问题。VUE和Flux状态管理都基于这种思想,通过严格管理数据流来规范数据在客户端 Web 应用的流动方式。
系统分析与设计(作业8)
最新推荐文章于 2019-07-17 09:24:50 发布