Android AOP 理解(一)

之前很多人都写过AOP 相关的博客,所以我写的不一定很好,只当自己的一些总结,留给以后查阅用,所以理论不会很多,更多的度是我自己的实践。

OOP:这个我们很熟悉,java中面向对象编程。

AOP:面向切面编程。个人理解它是对OOP的一种补充,是为了更好的降低耦合。譬如我们知道java中侧重业务的封装,比较独立的模块,我们希望组件化出来。降低耦合。但其实在我们正常开发的业务项目中,并不能做到完美的独立。

举个栗子: 我之前做过一个医疗的项目,项目中很多点击进入下一个模块,需要判断医生的认证情况

按我们没有接触过AOP思想的做法应该是如下的

if(beAuthentication){
    进入下一个界面
}else{
    进入医生认证界面
}

这种判断语句会出现很多独立的模块中的很多地方,看上去是不是显的很不cool。这种权限逻辑很多、并且哪天产品说需要改的情况下,是不是感觉很苦

Android当中常见的APT开发分几种方式

   1) APT    代表框架:ButterKnife、Dagger2、DBFlow、AndroidAnnotation

   2) AspectJ   代表框架 Hugo(Jake Wharton)

   3)Javassist   代表框架:热修复框架HotFix 、Savior(InstantRun)等

它们的区别可以用下面经典的图表示


当然要理解AOP开发,需要了解的知识是注解,不是很了解的同学可以看下这篇文章

Java Annotation最佳入门实践

考虑到篇幅问题,一遍文章如果要把整个AOP 讲完,会云里雾里的,计划AOP分四个篇幅去讲

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值