代码的框架-MVVM

关于 MVVM,尽可能多的使用面向协议的思想来实现。

v 0.1 的MVVM(初始的构建)

v 0.2 的MVVM(失败的尝试)

v 1.0 的MVVM(稳定的版本)

v 1.1 的MVVM(面向协议的开始)

好架构的标准
- 代码整齐,分类明确,没有common,没有core
- 不用文档,或很少文档,就能让业务方上手
- 思路和方法要统一,尽量不要多元
- 没有横向依赖,万不得已不出现跨层访问
- 对业务方该限制的地方有限制,该灵活的地方要给业务方创造灵活实现的条件
- 易测试,易拓展
- 保持一定量的超前性
- 接口少,接口参数少
- 高性能

以此记录当前使用的项目构架

    ├── <CodeFeed>               项目构建内容
    ├── <PrefixHeader>           预编译部分
    ├── <Utils>                  仅本项目可用工具
    ├── <Supporting Files>       项目基本配置文件
    └── <Pods(或Carthage)>工程   通用工具

1. CodeFeed ——项目构建内容

其内部分

    ├── <EntityCode>        代码实体,主要页面的构建
    └── <PublicCode>        跳转的公共页面

内部以MVVM构架进行搭建,其下分为

    ├── <M>  数据模型集合
    ├── <V>  显示层集合
    ├── <VM> 业务模型集合
    └── <C>  存放'M、V、VM'的容器

其中

M层 以 瘦Model 为标准,仅用做数据的存取,其辅以ModelLayer用做数据的存取操作逻辑

V层 显示相关的功能组件

  • 对于业务较少的 View,做简单的封装,仅暴露必要的接口以方便其展示数据的更新。
  • 对于业务较多,逻辑复杂的 View,设计时需遵循 面向协议 的思想,将需要定制的 UI 和逻辑,通过 delegatedataSource实现

VM层 负责逻辑操作,对View做定向的数据做绑定和定制

  • View仅暴露一定的数据接口,则其为 View和对应的Model进行数据绑定;
  • View使用面向协议的思想来设计,则实现其协议方法,实现View的定制

以上模型均以Index 做为访问内部诸项的索引

C层,存放’M、V、VM’的容器,实现数据、逻辑的定向绑定。

2. PrefixHeader -预编译部分

存放.pch文件及其它预编译的文件

例如:

  • 宏的定义
  • 常用类的引用
  • UI原型的属性设置
  • 类方法指针的混用
    ……

3. Utils -仅本项目可用工具

只适用于当前项目的工具(多项目通用的工具类,应当提取出去,在托管平台上进行维护)

根据功能可以细分为以下几种:

    ├── <Component>  完全内聚的功能组件(含有自己的M、V、VM的完整组件)
    ├── <Category>   添加便捷调用的拓展方法
    ├── <M>          通用的数据模型
    ├── <V>          通用的显示层
    └── <VM>         通用的业务模型

M、V、VM的设计参考 codeFeed中的对应模块

4. Supporting Files -项目基本配置文件

存放APP的配置文件 info.plistInfoPlist.stringsmain.mAppdelegate

5. Pods(或carthage)-通用工具

管理通用的工具类

AFNetworkingMasonryMJRefresh ……

Github地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt MVVM(Model-View-ViewModel)是一种基于Qt框架的设计模式,用于构建用户界面(UI)和业务逻辑的解耦合的应用程序。它是基于传统的MVC(Model-View-Controller)模式的进一步演化。 在Qt MVVM中,Model负责数据的管理和操作,它提供了底层数据对象和数据操作的接口。View是用户界面的呈现,它通过绑定机制和ViewModel交互,以显示数据和响应用户的操作。ViewModel是连接Model和View的桥梁,它将Model的数据转化为View所需的格式,并将用户的输入和操作转化为Model所需的格式。ViewModel还提供了数据绑定机制,以确保Model和View之间的同步。 通过使用Qt MVVM,我们可以实现以下优点: 1. 解耦合:通过将业务逻辑与用户界面解耦合,使得代码易于维护和测试。ViewModel充当了Model和View之间的中间层,使得它们可以独立地进行修改和调整。 2. 可维护性:由于代码的解耦合,使得我们可以更容易地对应用程序进行修改和更新。当需要改变用户界面或业务逻辑时,只需要修改ViewModel或Model的代码,而不会影响其他部分。 3. 可测试性:MVVM模式提供了更好的测试性,我们可以更容易地编写单元测试,以验证Model和ViewModel的功能是否正常工作。这使得我们可以更好地管理和保证代码的质量。 4. 数据绑定:Qt MVVM提供了高效的数据绑定机制,使得我们可以非常简便地将数据与用户界面关联起来。这大大减少了手动更新UI的工作量,提高了开发效率。 总之,Qt MVVM是一种强大的设计模式,可以帮助我们构建易于维护和测试的应用程序。通过解耦合和数据绑定,它提供了一种更合理和高效的方法来管理用户界面和业务逻辑之间的交互。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值