加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长资讯 > 评论 > 正文

一名一线开发对于App架构和组件化的思考

发布时间:2019-07-26 22:52:42 所属栏目:评论 来源:一线搬砖工人
导读:副标题#e# 写在前面 关于App架构、组件化,本文的内容不会涉及到具体代码层面,也不会介绍怎样使用Cocoapods去做组件化;而是站在软件工程的角度上,结合自己多年一线开发经验,去分析如何做App架构,如何通盘考虑什么样的架构才是合理的,契合自身业务的,

通用组件层的横向依赖。

一名一线开发对于App架构和组件化的思考

通过上图可以发现,首页组件实际只是获取了登录态,但登录模块没有提供对应服务,则只能通过引用头文件的方式把该组件import进来,两者耦合在一起。

利用中间件的概念,我们可以在两个模块之间建立一个服务层,专门用来进行模块间的数据通信,或者非界面跳转的小粒度组件的数据通信。这样就很好的解决了两个组件的横向依赖问题。

业务模块间的横向依赖。

这里主要说的是那些业务功能独立、业务线之间的横向依赖。举例说明,首页模块可能带有业务A、业务B、业务C的入口,如果没有做组件化,则首页模块连同A、B、C业务都耦合在一起。这里推荐几个比较比较常用的路由解决方案。

  • JLRoutes-URL routing library for iOS with a simple block-based API。
  • BeeHive-iOS的App模块化编程的框架实现方案,吸收了Spring框架Service的理念来实现模块间的API耦合。
  • CTMediator-基于Mediator模式和Target-Action模式。

Q:我该如何设计一个路由,用于模块间的跳转?

A:设计路由需要遵循几个原则。

  • 第一,便于集成,最小的改动即可实现一个路由。
  • 第二,最大限度把参数正确性校验提前,能在编译时校验就不要在运行时校验。
  • 第三,尽可能的支持多种注册方式,静态注册、动态注册、服务配置等。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读