系统分析与设计作业7

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

  • 软件架构:软件架构是一个系统的草图,它和语言和技术无关,是一种关于软件如何设计的策略。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。

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

  • 两者的区别与联系:软件框架是软件,它由实际代码组成,是系统的半成品;而软件架构不是软件,是关于软件如何设计的一种决策,是引导如何设计软件框架的重要决策。框架技术和架构技术的出现,都是为了解决系统日益复杂所带来的困难而采取的“分而治之”的思维的结果。

以你的项目为案例

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

三层架构模型图如下:

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

三层架构的便利:

  • 有助于开发人员分工合作,同时开发各自模块,以我们的程序为例,我们首先将其分为了商家模块和顾客模块,这样就将前段工作人员分为了两个团队,然后再将模块系分并分配到个人,从而使得我们能够同时多人开始编码工作。

  • 降低层与层之间的依赖,低耦合性。

  • 维护成本较低,出现bug时,只需要修改出现问题的模块。

  • 其次,每个模块都是可扩展的并且重用性强,减少了代码量以及工作量。

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

同:Vuex和Flux的状态管理都是Flux思想的有效实现,两者都是通过store来存储状态

异:

  • Flux是一种前端状态管理架构思想,专门解决软件的结构问题。

    Flux分为四层,分别是:

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

    其数据流顺序为:

    View发起Action->Action传递到Dispatcher->Dispatcher将通知Store->Store的状态改变通知View进行改变。

  • Vue的状态管理是通过Vuex来实现的,而Vuex是基于Flux设计思想的一个状态管理框架。其核心分别为:

    • state:存放多个组件共享的状态(数据)
    • mutations:存放更改state里状态的方法,用于变更状态,是唯一一个更改状态的属性
    • getters:将state中某个状态进行过滤,然后获取新的状态,类似于vue中的computed
    • actions:用于调用事件动作,并传递给mutation
    • modules:主要用来拆分state

    Vuex数据流顺序是:

    View调用store.commit提交对应的请求到Store中对应的mutation函数->store改变(vue检测到数据变化自动渲染)