`

一周总结

 
阅读更多
AOP中的概念:

Aspect(切面):指横切性关注点的抽象即为切面,它与类相似,只是两者的关注点不一样,类是对物体特征的抽象,而切面是横切性关注点的抽象(包括切入点的描述和通知的描述)。
             Spring中,Advisor就是切面;但与通常的Aspect不同的是,Advisor通常只有一个Pointcut和一个Advice,而Aspect则可以包含多个Pointcut和多个Advice,因此Advisor是一种特殊的Aspect。
Joinpoint(连接点):所谓连接点是指那些被拦截到的点。在spring中,这些点指的是方法, 因为spring只支持方法型的连接点,实际上joinpoint还可以是field或者构造器。
Pointcut(切入点):所谓切入点是指我们要对那些连接点(joinpoint)进行拦截的定义。
Advice(通知):所谓通知是指拦截到jointpoint之后所要做的事情就是通知。通知分为前置通知、后置通知、异常通知、最终通知、环绕通知。
             通知定义了具体的横切逻辑
Target(目标对象):代理的目标对象
Weave(织入): 指将(Aspects)多个切面应用到target对象并导致proxy对象创建的过程称为织入
Introducton(引入):在不修改类代码的前提下,Introduction可以在运行期为类动态地添加一些方法或Field

>>原型模式:
1、原型模式优点

性能优良:内存二机制流的拷贝
逃避构造函数约束

2、使用场景
资源优化场景:类初始化需要非常多的资源
性能和安全要求的场景:通过new 产生一个对象需要非常繁琐的数据准备或访问权限
一个对象多个修改者的场景:一个对象需要提供给其他对象访问,而且各个调用者修改其值

>>代理模式
1、优点:
职责清晰:真实角色可以集中出来实际的业务逻辑,不关心其他非本职责的实现
高扩展性:主题角色可以随时变化,但代理类中采用依赖倒置,关联是其接口。代理类完全不用修改
智能化:?
2、使用场景:代理律师,经纪人,spring aop

>>装饰模式
1、优点:
装饰类和被装饰类可以独立发展。装饰类中构件依赖其基类或接口
装饰类可以动态扩张功能
2、使用场景
(批量)扩展一个类的功能
动态给一个类增加(撤销)功能
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics