美文网首页
02.AOP面向切面编程 - 淘宝京东网络处理

02.AOP面向切面编程 - 淘宝京东网络处理

作者: 闫鹏飞写字的地方 | 来源:发表于2021-11-04 10:36 被阅读0次

1. 希望所讲的内容大家觉得耳目一新

2. 能够学到一些新的东西

3. 多花时间跟上来

京东的网络处理:没网是点击是没反应的,有网的时候点击才能调整

1. 每个方法做判断 if(有网) 跳转

不好的地方,每个方法都判断 ,没有扩展性可言

2. 内涵段子我所写的 IOC 注解扩展一个网络判断,必须要基于我的 IOC 注解

3. 面向切面编程 OOP(面向对象) AOP (面向切面)

1.定义:

把某一方面的一些功能提取出来与一批对象进行隔离,提取之后我们就可以对某个单方面的功能进行编程。

2.套路:

把众多方法中的所有共有代码全部抽取出来,放置到某个地方集中管理,然后在具体运行时,再由容器动态织入这些共有代码的话,最起码可以解决两个问题:

1.1 Android程序员在编写具体的业务逻辑处理方法时,只需关心核心的业务逻辑处理,既提高了工作效率,又使代码变更简洁优雅。

1.2 在日后的维护中由于业务逻辑代码与共有代码分开存放,而且共有代码是集中存放的,因此使维护工作变得简单轻松。

1.3 面向切面编程AOP技术就是为解决这个问题而诞生的,切面就是横切面,代表的是一个普遍存在的共有功能,例如,日志切面、权限切面及事务切面等。

  1. 淘宝京东网络判断处理

1. 动态代理 (aop)比如说 MVP 里面的 每次要去判断 M 层是不是等于空

2. 比如我们经常在 application 里面做一些 Activity 生命周期的监听

3. 基于第三方的一些编译工具 AspectJ

3.1 下载 aspectj-1.8.10.jar 文件

3.2 双击安装 一直点击下一步

3.3 新建应用 然后在 build.gradle 里面添加配置

3.4 去安装目录下面 copy 一个开发包

3.5 写代码

以后更多的是要去思考 ,最后可以去扩展 。练习:处理权限实现

3.6 怎么实现的?

会不会影响性能? 1 ,2

运行按钮 我们用了 aspectj 第三方的编译器 ,class 文件是由 aspect 去编译,是因为 aspect 会去拷贝代码的

class 文件 代码其实是如下:

if(CheckNetUtil.isNetworkAvailable(this)) 
  Intent intent =  new  Intent(this,  MainActivity.class);
  startActivity(intent);`
}

怎么验证我说的,反编译源码

交流群 546270670

视频Grace 2746186102

相关文章

网友评论

      本文标题:02.AOP面向切面编程 - 淘宝京东网络处理

      本文链接:https://www.haomeiwen.com/subject/votfzltx.html