设计模式分享 MVM for iOS,Android, H5. 欢迎提供建议

301 天前
 adansong

业务背景: 公司有很多业务线,比如开发 2 款功能相近,UI 不同的 APP, 不同业务线可能 80%逻辑差不多, 后端用的都是一套代码, 前端就比较麻烦了.

整体思路: 每个页面一个 Model, Model 中包含 data 和 function, 然后 UI 和 data 绑定, 页面事件(生命周期,点击事件)调用对应的 function,

实际开发中每个页面有一个 Mediator,通过MediatorManager Singleton 管理,相当于数据层 keep-alive Mediator其实就相当于后台和 UI 层的中间件包含 data 和 function, 然后前端直接用 Mediator 渲染 UI,

iOS, Android, h5 通过 MVM 架构, 这样,逻辑部分用一套代码,细节上继承,重写一些方法就行了,iOS, Android, h5 逻辑代码一套, 只需要写不同业务的 UI 代码就行

尤其对于 h5 非常适合,由于 css 可以独立出来,h5 代码复用率最高

后来发现这个架构比想象的要好用不少, 理论上可以用 unit test 替代 UI test,逻辑代码复用率高等优点 具体细节和优缺点 请看 https://github.com/AblerSong/MVMDemo; 代码中包含 vue, iOS, Android,简单易懂

欢迎大家提供开发建议; 觉得有帮助的欢迎 github star

393 次点击
所在节点    程序员
2 条回复
adansong
298 天前
代码链接, 上面直接点击有分号, https:github.com/AblerSong/MVMDemo
adansong
298 天前
代码链接, 上面直接点击有分号 https://github.com/AblerSong/MVMDemo

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/967203

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX