美文网首页
Introduction

Introduction

作者: V_coa | 来源:发表于2018-06-02 08:37 被阅读19次

    Application Architecture

    ​ App 架构是关于怎么组织设计构建应用,应用是怎么划分不同的接口和概念层,控制流和数据流是怎么在不同的层中进行操作流动。

    ​ 例如,在 Apple 的 MVC 中,有如下 3 层,model, view 和 controller layer

    image.png

    ​ 箭头部分表示着 3 层是怎么通信的,这个图简单的说明了 MVC 是如何组织的。应用架构还涉及其他的方面,例如组件是怎么组织起来的,事件的在各层中的流向。

    Model and View

    ​ 在一定层面来说,App 的架构是由一系列不同层次组件的集合组合成的。在这里称为 categories layers

    ,它是一类符合某种基本原则或者责任的接口或者代码

    ​ 在这些 layer 中 model layerview layer通常都会有,model layer 是应用中的内容来源,存储在磁盘的称为 document model,view layer 用于展示和交互

    Applications Are a Feedback Loop

    ​ view layer 和 model layer 需要通信,假设 view layer 和 model layer 分离,并没有任何关联,如果他们通信就需要一些手段:

    image.png

    这样的结果就呈现了一个 feedback loop,view 渲染和接受用户的一些输入,每个应用如何处理这些交互和通信,相关的依赖,和转换这些上图这些箭头的流程,view action触发事件,例如点击按钮,view action 传递给 model layer,这里可能会转化为 model action(更新 model 对象的操作),view actions 到 model actions 这个转化称为 interaction logic,当 model layer 更新后,通过一些如何 delegate, Notification callbacks 或者其他机制来更新 view layer,称为 presentation logic

    ​ 有一些 view 状态是不依赖 document model 的,例如 navgation state,这些 state 称为 view state,如果一些状态的维护是在 model layer 和相关的改变是满足 feedback loop 的,称为 unidirectional data flow

    Architectural Technologies

    ​ Notifications, KVO 都可以产生当属性发生变化的通知,这是 Cocoa 为我们提供的技术,其他一些三方的技术,例如 reactive programming 是另一种技术可以实现上面的效果,但是和 Notifications, KVO 不同的是,它关注的是 source 和 destination 的转化。

    Application Tasks

    ​ view 通过都要构建的,model 也是,处理 model 的可能被更新的操作。和当 model 被更新后,相关的更新处理,所以会有以下需要处理的:

    1.Construction谁处理 model 和 views 的通信

    2.Updating the model怎么处理 view actions

    3.Changing the view怎么使 model data 被 view 渲染

    4.View state怎么处理 navigation 和其他没有 model 状态

    5.Testing测试的覆盖率等

    相关文章

      网友评论

          本文标题:Introduction

          本文链接:https://www.haomeiwen.com/subject/ujulsftx.html