博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java框架学习日志-12(回顾aop)
阅读量:6687 次
发布时间:2019-06-25

本文共 852 字,大约阅读时间需要 2 分钟。

hot3.png

为什么要用代理模式?

因为常见的业务都需要加上一些公共的业务,Spring把公共业务称为关注点,关注点常见的有日志,安全,权限,缓存,事物等。因为公共业务会经常使用,所以就提取出来,放在一个公共的方法里面。代码就可以复用了。但是公共业务可能会实现比较复杂的操作,而且整个程序都可能会调用公共业务,所以就可以把公共业务提出变成一个类,通过类来调用公共业务。但是通过类来调用代码,也会需要一行去调用的代码。比如A.log()。这一行代码本身和业务是没有关系的。这一行代码就会使得业务不是很纯粹,设计模式中也提过单一职责原则,那这个类除了处理本身的业务以外,还有添加公共业务的作用。而且也产生了依赖关系。


为什么要用动态代理?

虽然把公共业务提出来作为一个单独的类,可以让业务更加纯粹,然后在增加一个代理类,添加公共业就在代练类里面添加会很方便。可是如果业务多了,每个业务都有可能添加公共业务,那么每个业务都需要一个代理类,就会造成类过多。而动态代理就是为了解决这个问题出现的。动态代理可以代理所有的类。动态代理通过proxy生产代理实理。然后通过代理实例去调用真实对象的时候,会调用代理实例的invoke方法去建立真实对象和代理实例的联系。


什么是领域业务(领域模型)?

现在软件开发已经分得很清楚了,不同的领域设计的业务都不一样,但是同一个领域都会有一些共同的业务。我们把这部分共同的业务抽出来,就成了领域模型。比如在支付领域。无论是支付宝,或者微信,或者其他支付方式。它的过程基本都是固定的:

接入第三方接口——安全验证——身份验证——余额验证——支付。
这个过程就可以抽出来,就是一个领域业务了。


什么是AOP?

aop的作用就是在不改变原有代码的基础上,新添加功能,像是横切进去一样,所以叫面向切面编程。aop实际上也是通过动态代理来实现的。spring提供了一个动态代理的框架,使得编写代码更方便。

转载于:https://my.oschina.net/u/4000133/blog/2993192

你可能感兴趣的文章
最新Android SDK/ADT/NDK的下载位置
查看>>
SystemTap知识(一)
查看>>
OracleLinux上安装数据库(DBCA)
查看>>
IOS开发 应用程序图标数字角标
查看>>
利用 FormData 对象发送 Key/Value 对的异步请求
查看>>
vlc做转发的命令
查看>>
MySQL:日期函数、时间函数总结
查看>>
【技术贴】三星Note8 N5100实用教程,关闭相机快门声,增加浏览器退出按钮。...
查看>>
C# 调试程序时如何输入命令行参数
查看>>
如何成为强大的程序员?
查看>>
C#获取全部目录和文件
查看>>
跨站请求伪造CSRF
查看>>
关于同一用户不能同时登录问题的探讨(2/2)
查看>>
IE bug之location.href没有referer
查看>>
VB将MSHFlexGrid数据导出到Excel文件通用功能
查看>>
Opengl绘制我们的小屋(三)纹理绘制
查看>>
session 防止表单重复提交
查看>>
Windows Phone开发(1):概论
查看>>
如何修改博客样式
查看>>
C#语法之泛型
查看>>