组件化学习思想及实现方式

Posted 独饮敌敌畏丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了组件化学习思想及实现方式相关的知识,希望对你有一定的参考价值。

1.组件化的介绍

我认为组件化,就是整个项目由app外壳,若干业务组件,以及公共基础组件构成。如图所示

我认为组件化最明显的特点就是:各个业务模块之间没有直接的横向依赖

意义:不相互依赖,但是可以相互交互;高度解耦;自由拆卸

2.组件化的部署

关于如何将项目组件化,网上有大量的学习资源,我推荐一篇文章,写的超级详细:就是这一篇文章

3.组件之间的通信:

当然最常用的还是阿里开源的ARouter。这个就不多介绍了,但是除了这种方式,还有其他几个比较原始的方式

①使用EventBus

缺点:EventBus维护成本高,不好管理

②使用广播

缺点:广播不好管理,消息一旦没处理好,就统一都发出去了

③使用隐式意图

缺点:在androidManifest.xml里面配置的xml太多了

④使用类加载

缺点:容易写错包名类名
原理:打成apk包的时候,点开dex文件,发现各个模块是在一起的,如图
所以这是类加载方式的灵感

⑤使用全局Map(低配版ARouter)

缺点:要注册很多的对象。
每一个Activity创建的时候,要向这个全局Map里面注册。当需要跳转的时候,就从这个全局Map里面根据key去取相应的Activity对象,这样可以完成通信

以上是关于组件化学习思想及实现方式的主要内容,如果未能解决你的问题,请参考以下文章

Vue全家桶之组件化开发

[Python学习] 简单网络爬虫抓取博客文章及思想介绍

vue.js学习笔记:什么是mvvm框架,vue.js的核心思想

js学习总结----ajax兼容处理及惰性思想

ET框架学习-ECS组件式编程的基本思想之于UNITY

云原生与Go 微服务实战学习笔录- 一文带你了解云原生架构演进及设计思想