Android APP应用架构 AOP+MVP+modularity

现在各种设计模式和思想都已经被运用到Android程序中,我也来说说我的一些看法。

AOP:面向切面编程,将程序看做切面织入公共代码,达到控制全局的目的。和OOP编程相互呼应,弥补了面向对象编程的弱点,一些在面向对象编程中比较难以实现或者说实现较为麻烦的功能(如日志跟踪,系统监控),以面向切面的方式实现。以一个统筹家的角度去重新审视程序整体。往往能得到一劳永逸的效果。

modularity : 类似于分布式程序设计,模块化编程,将程序的每一个部分做成一个完整的可独立运行的模块。 在运行阶段,每一个功能模块在运行阶段都拥有自己的生命周期,但它们相互之间又能够相互影响达到外界输入的目的。

MVP :负责业务逻辑与View界面的解耦合,相互注入监听接口,来实现各层级之间的通信方式。

RxJAVA:使用观察者进行响应式编程的思想特别值得学习,在上一个任务的结果等于下一个任务的输入的场景下,这种框架能够简化代码,使业务逻辑更加清晰也更易管理和修改。

一个程序较好的架构模式我认为应该是这样的

1.分层分离:分为工具层级,功能层级,业务层级三部分。功能层级为底层,功能层级为中层,业务层级为高层。

2.解依赖:上层只能依赖底层,底层不可以依赖上层。也就是说,上层可以调用底层的代码,而底层只能暴露接口,而不能调用上层代码,在没有上层的时候底层依然能够独立运行。

3.模块化:同一层级的各个模块之间不应该有相互依赖的关系,如果有,则应该将需求抽象出来,放入更低层进行统一处理。这样同一层级之间的每个模块都能够独立运行,代码之间不会互相影响,责任需求分工也会显得更加明确。同时低层模块与上层模块各司其职,在出现问题的时候也能够快速定位。模块化还有一个好处,就是能够快速的添加,删减功能,因为模块之间相互没有依赖,在模块删除的时候只需要删除相应代码即可,而其它的代码不需要动,增加模块时也是只需要在相同层级新建一个文件夹即可。达到最小变化的目的。

4.业务与界面解耦:使用MVP和MVVM设计模式进行业务与界面的解耦。

5.使用AOP来处理全局任务:在程序中可以使用AOP来进行监控系统的运行,方法运行的快慢,以及log的抓取和一些需要全局处理的功能,来逐步的进行程序优化。

下图展示APP整体的架构

Android APP应用架构 AOP+MVP+modularity_第1张图片
APP架构图

你可能感兴趣的:(Android APP应用架构 AOP+MVP+modularity)