组件化学习

原文地址:html

https://casatwy.com/iOS-Modulization.html安全

下面是对做者的思想的一些总结,不表明咱们本身的组件化也要这么作(或者这么作,或者不这么作),咱们本身的组件化还须要在实践中不断完善,这里先理解清楚做者的意图。架构

远程调用和本地调用分开

远程调用就是app外部调用app的某个模块
本地调用就是app内部模块间的相互调用app

理由是:组件化

  1. 远程App调用处理入参的过程比本地多了一个URL解析的过程,这是远程App调用特有的过程
  2. 对于无响应请求的处理方式:远程和本地可能不同,因此要分开。若是都采用一样的方式,对于本地调用无响应的结果,极可能产品经理会不一样意展现一个404页面,而致使架构改变,而加班。

不使用URL注册,使用runtime机制便可,不维护注册列表

使用openURL的方式实现组件化是错误的

理由是:openURL的方式没法传递很是规参数。url

组件化方案中的去model设计

参数最好以字典的方式去传递
实现方式:设计

  1. CTMediator 提供转发的基础服务
  2. CTMediator+CTMediatorModuleAActions 提供和模块A有关系的全部调起
  3. Target_A提供具体要执行方法
  4. 调用模块依赖被调用模块的Category,例如想要调起A模块的页面,要依赖CTMediator+CTMediatorModuleAActions。
  5. category中定义的具体方法,限制了传参,能够保证只有知足正确的参数,才能够被执行。

一些安全措施

如何防止别人经过url调用本地页面:远程调用和本地调用分开后,这个问题就好解决了,采用给action添加native前缀去作的,凡是带有native前缀的就都只容许本地组件调用。htm

相关文章
相关标签/搜索