组件化在项目中的意义(阿里)
这道题想考察什么?
- 是否了解组件化的作用 与 概念理论?
考察的知识点
- 组件化存在的意义与理论的基本知识
考生应该如何回答
1.组件化有什么意义,没有组件化会出现什么问题?
早期的单一分层模式
问题一:无论分包怎么做,随着项目增大,项目失去层次感,后面接手的人扑街
问题二:包名约束太弱,稍有不注意,就会不同业务包直接互相调用,代码高耦合
问题三:多人开发在版本管理中,容易出现代码覆盖冲突等问题
请看一下图:

所有的代码都写在app模块中不同的包里面,请看一下图:

组件化的意义:不相互依赖,可以相互交互,任意组合,高度解耦,自由拆卸,自由组装,重复利用,分层独立化

此时:app不在是老大,子模块都是小弟
组件化后,所有的module都平起平坐,有人说app的module在组件化中是个壳子,这也是为什么成为app壳工程的原因
同学们思考,如果没有组件化,还是单一:
1.彻底砍掉order子模块,需要多少工作?
2.如何给项目增加一个子模块(钱包)?
........
2.组件 与 组件 的通信方式那些?
方式一 使用 EventBus的方式,缺点是:EventBean维护成本太高,不好去管理:
方式二 使用广播的方式,缺点是:不好管理,都统一发出去了
方式三 使用隐士意图方式,缺点是:在AndroidManifest.xml里面配置xml写的太多了
方式四 使用类加载方式,缺点就是,容易写错包名类名,缺点较少
方式五 使用全局Map的方式,缺点是,要注册很多的对象
方式六 使用 阿里巴巴开源框架 ARouter
最后
有需要面试题的朋友可以关注一下哇哇,以上都可以分享!!!
网友评论