美高梅平台下载-美高梅娱乐平台登录

热门关键词: 美高梅平台下载,美高梅娱乐平台登录

特别的是在一些框架中,为其他对象提供一种代

日期:2019-10-06编辑作者:美高梅平台下载

即Proxy Pattern,23种常用的面向对象软件的设计模式之一。为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象或者为了某种简洁方便,而代理对象可以在客户端和目标对象之间起到中介的作用。


jdk1.8.0_144  

生活中我们处处会见到代理,比如抢票软件、各种中介(卖房子的、租房的、婚介等)还有代理服务器,这写其实和我们今天说的代理设计模式原理是一样的,中介帮我们中很多事,让我们省心、省事,只要把我们要做的是委托给代理就ok了,中介当然要费用或者好处了。。一些代理或者说中介可能会做一些我们不知道的事,比如偷工减料、增加我们不想要的或者价值很低的东西等等,同理代理设计模式也会有这种问题。

  • title: Jdk动态代理原理解析
  • tags:代理
  • categories:笔记
  • date: 2017-06-14 9:48:05

  在正式进入Spring AOP的源码实现前,我们需要准备一定的基础也就是面向切面编程的核心——动态代理。 动态代理实际上也是一种结构型的设计模式,JDK中已经为我们准备好了这种设计模式,不过这种JDK为我们提供的动态代理有2个缺点:

好处:①职责清晰:被代理对象只用关注自己的业务逻辑,不用关心与其他模块或者调用者的交互,具体交互交由代理对象实现,这样编程比较清晰,而且符合生活场景


  1. 只能代理实现了接口的目标对象;
  2. 基于反射,效率低

② 降低系统耦合以及符合开闭原则:代理对象可以在客户端和目标对象之间起到中介的作用,这样就可以保护目标对象。

动态代理这个知识点,也是我们开发过程中非常容易遇到。特别的是在一些框架中,为了满足软件开发的开闭原则,以及增强框架自身的灵活拓展功能。在底层就会为那些特定的目标类或者接口实现类进行渲染与自定义功能操作。就如spring框架中的aop,底层也是通过动态代理来实现的,所以,就像看看jdk自身的动态代理是如
何实现的,整个过程是如何流动的。

  鉴于以上2个缺点,于是就出现了第二种动态代理技术——CGLIB(Code Generation Library)。这种代理技术一是不需要目标对象实现接口(这大大扩展了使用范围),二是它是基于字节码实现(这比反射效率高)。当然它并不是完全没有缺点,因为它不能代理final方法(因为它的动态代理实际是生成目标对象的子类)。

③高扩展性

图片 1

  Spring AOP中生成代理对象时既可以使用JDK的动态代理技术,也可以使用CGLIB的动态代理技术,本章首先对这两者动态代理技术做简要了解,便于后续源码的理解。

本文由美高梅平台下载发布于美高梅平台下载,转载请注明出处:特别的是在一些框架中,为其他对象提供一种代

关键词:

定义抽象命令和多个具体的命令,首先定义命令

命令模式,将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化;对请求队列或记录请求日志,...

详细>>

prototype.(用原型实例指定创建对象的种类,但是

原型模式 一. 概念 定义:Specify the kinds of objects to create using a prototypicalinstance,and create new objects by copying thisprototype.(...

详细>>

代码会变成什么样,可以使用策略模式

策略.jpg 本文仅仅为入门,高手勿喷。 策略模式 定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以...

详细>>

对于扩展的话,通知观察者来扩展功能

咖啡店,客户可能会叫一种饮料,并且指定某些调料加入进去,比如深焙咖啡,用摩卡,奶泡,牛奶作为调料,计算...

详细>>