关于AOP的理解
2016-04-05 21:47
337 查看
AOP,面向切面编程,在看传智视频的时候,看到一个很好的理解,一个很好的AOP的例子,试详解之。
最优例子:权限控制。
在权限控制中,比较原始的做法(不原始的做法我也不会)是,对每个需要控制权限的地方,通过if来判断人员的权限,而后给予或不给某权限。如:
而这个过程中,对每一个按钮、页面或者其他元素,一旦需要授权,则需要进行一番这样的判断,这个判断的过程明显的是代码重复。因此有必要将if判断分离出来,我们只有专心的做好 do xxx 的部分就好了。
把 if判断分离出来的过程,就是一种AOP的体现。
java对AOP的抽取,采用了代理(proxy)的方法来进行。简单的说,就是设置一个代理对象,对所有的业务方法进行拦截,而后判断用户是否有权限访问,有权限的话就允许执行业务方法,否则就不允许执行业务方法。
也即:将目标对象的所有业务实现方法都赋予代理对象,这样,只需要给代理对象做操作即可,而不用在目标对象身上进行冗余的代码。
最优例子:权限控制。
在权限控制中,比较原始的做法(不原始的做法我也不会)是,对每个需要控制权限的地方,通过if来判断人员的权限,而后给予或不给某权限。如:
而这个过程中,对每一个按钮、页面或者其他元素,一旦需要授权,则需要进行一番这样的判断,这个判断的过程明显的是代码重复。因此有必要将if判断分离出来,我们只有专心的做好 do xxx 的部分就好了。
把 if判断分离出来的过程,就是一种AOP的体现。
java对AOP的抽取,采用了代理(proxy)的方法来进行。简单的说,就是设置一个代理对象,对所有的业务方法进行拦截,而后判断用户是否有权限访问,有权限的话就允许执行业务方法,否则就不允许执行业务方法。
也即:将目标对象的所有业务实现方法都赋予代理对象,这样,只需要给代理对象做操作即可,而不用在目标对象身上进行冗余的代码。
相关文章推荐
- Docker操作参数
- RunLoop应用篇--定时器
- Linux启动过程详解
- Linux下安装Vmware tools
- docker常用命令
- Microsoft.Win32.OpenFileDialog使用例子
- CentOS安装epel
- apache高负载性能调优
- 《Linux内核分析》课程第七周学习总结
- 7_Linux内核如何装载和启动一个可执行程序
- hadoop生态系统学习之路(七)impala的简单使用以及与hive的区别
- linux workqueue
- 【小镇的技术天梯】lanmp服务器集群搭建(1)nginx的反向代理
- nginx配置多站点
- 用C语言实现的简单Web服务器(Linux)
- apache配置中的Timeout和KeepAliveTimeout的解释
- Nginx反向代理
- Linux(CentOS)的server安装及配置图解(图文)
- 在win7下搭建OpenGL ES 2.0的开发环境
- Ubuntu使用MAC主题