V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
adansong
V2EX  ›  程序员

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

  •  
  •   adansong · 2023-08-21 21:41:58 +08:00 · 516 次点击
    这是一个创建于 494 天前的主题,其中的信息可能已经有所发展或是发生改变。

    业务背景: 公司有很多业务线,比如开发 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

    adansong
        1
    adansong  
    OP
       2023-08-24 13:52:39 +08:00
    代码链接, 上面直接点击有分号, https:github.com/AblerSong/MVMDemo
    adansong
        2
    adansong  
    OP
       2023-08-24 14:03:08 +08:00
    代码链接, 上面直接点击有分号 https://github.com/AblerSong/MVMDemo
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2766 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 06:40 · PVG 14:40 · LAX 22:40 · JFK 01:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.