系统分析与设计作业8
- 描述软件架构与框架之间的区别与联系
- 以你的项目为案例
- 绘制三层架构模型图,细致到分区
- 结合你程序的结构,从程序员角度说明三层架构给开发者带来的便利
- 研究 VUE 与 Flux 状态管理的异同
软件架构与框架之间的区别与联系
什么是架构
软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。
什么是框架
软件框架是指在一定的设计原则基础上,从不同角度对组成系统的各部分进行搭配和安排,形成系统的多个结构而组成架构,它包括该系统的各个组件,组件的外部可见属性及组件之间的相互关系。组件的外部可见属性是指其他组件对该组件所做的假设。
架构与框架的区别
- 框架是一个半成品的软件, 为最后的软件制品提供了基础代码。而架构不是软件,也不是代码, 它是一种软件设计的策略和思想。用于指导软件的设计与开发。
- 所针对的需要解决的问题对象不同。框架是针对特定的语言,技术的架构应用解决方案;而架构针对的是某一类软件生产问题的解决方案,并不针对于特定的语言实现。
- 架构重在 “构建”, 即在逻辑层面上进行分析,得到的结果也是在逻辑层面表达;框架则是重在“架”, 即为软件开发搭建好一些必要的基本代码,其成果直接体现为软件的一些 basecode
架构与框架的联系
- 框架一般即架构的具体实现,即架构落实到某种具体语言和技术上的体现。
- 架构和框架都是范围从大到小,逐步求精。架构通常是先建立全局的架构, 之后针对某个子系统再设计详细架构; 框架也是先为整个软件确定开发框架, 再根据某些子功能的实现选择其专门的框架。
- 架构和框架都在一定程度上缓解了因软件复杂而造成的代码混乱。它们都是在抽象的层面上对软件的开发起到了指导性的作用
绘制三层架构模型图
模型图如下:
三层架构给开发者带来的便利:
- 使开发者可以集中关注某一个部分的任务, 从而使分工更加明晰
- 有效的实现了去耦合, 使表示,业务,与持久化层分离。
- 项目的结构清晰, 易于拓展与维护。
- 在架构清晰的基础上, 很容易套用现有的框架来实现部分解决方案(代码复用)
VUE 与 Flux 状态管理的异同
不同
Flux:
Flux将应用分为四个部分: View, Action, Dispatcher, Store
这四个部分的功能如下:
- View:视图层
- Action:接收视图层传递的消息, 并执行相应的动作
- Dispatcher: 每一个Action都经过Dispatcher传递给所有的store,达到这一目的的实现方式是通过回调函数来完成的。
- Store:数据层, 这里用来存放应用的状态,当这里发生变化时, 在视图层上相应的展示出来
这里有一幅图, 感觉将数据流描述的比较清晰:
VUE:
Vue中状态管理有一个单独的模式, 叫 Vuex。其中主要分为以下几类: state, getters, mutations, actions, modules
- state: 作为数据源的存在, 用于存放组件之间的共享状态
- getters: 筛选state的派生状态, 方便其他组件使用它。
- mutations: 通过提交mutations,来更改state中的状态, 这也是更改state中状态的唯一方法。
- actions: 和mutation相似,但是支持异步操作。 Action也可以改变state中的状态, 不过是通过提交mutation来实现
相同
- 都含有数据驱动的思想, 以数据流的方向来进行思考与设计。
- Flux基于MVC模式, 而Vuex则是部分吸收Flux的特点
- 两者都是通过store来储存状态。