首页 > 其他分享 >代理模式的三种实现方式

代理模式的三种实现方式

时间:2024-07-10 09:02:12浏览次数:13  
标签:对象 代理 接口 实现 三种 模式 动态 方法

第一种:cglib动态代理

首先创建一个接口,存放对象的共同行为

然后创建一个对象

接着去创建一个类,如果不是spring工程,还需要加入相应的jar包cglib

然后去实现MethodInterceptor重写邻面的intercept方法

需要写一个方法去获取动态代理对象,通过enhancer获取父类管理的对象

然后设置回调函数

这是测试类

如果再添加一个新对象则不需要改变代理类;里面的内容

2.静态代理

静态代理就是写死了在代理对象中执行这个方法前后执行添加功能的形式,每次要在接口中添加一个新方法,则需要在目标对象中实现这个方法,并且在代理对象中实现相应的代理方法。

3.JDK动态代理

动态代理是在程序运行时通过反射机制动态创建的

这是代理类代码

测试类代码

总结:三种代理模式各有优缺点和相应的适用范围,主要看目标对象是否实现了接口。以Spring框架所选择的代理模式举例

在Spring的AOP编程中: 如果加入容器的目标对象有实现接口,用JDK代理 如果目标对象没有实现接口,用Cglib代理

标签:对象,代理,接口,实现,三种,模式,动态,方法
From: https://blog.csdn.net/wuzhaoyang11/article/details/140304262

相关文章

  • 第三章 设计模式(2023版本IDEA)
    学习目标3.1设计模式概述3.2软件可复用问题和面向对象设计原则一、软件可复用问题二、面向对象设计原则1.单一责任原则(SingleResponsibilityPrinciple,SRP)2.开放-封闭原则(Open-ClosedPrinciple,OCP)3.里氏替换原则(LiskovSubstitutionPrinciple,LSP)4.依赖倒......
  • 关于力扣150题目——逆波兰表达式求值Java实现的三种解法
    题目介绍逆波兰表达式是一种后缀表达式,其运算符位于操作数之后。力扣150题目要求我们实现一个函数,计算给定逆波兰表达式的值。本文将介绍三种不同的Java实现方法来解决这个问题。解法一:使用栈这是最直观和常见的解法,使用栈来存储操作数,并在遇到运算符时从栈中弹出操作数......
  • 中介者模式(Mediator Pattern)
    中介者模式(MediatorPattern)定义又称为调解者模式,或调停者模式。中介者模式定义了一个中介对象来封装一系列对象之间的交互,使得这些对象不需要直接相互通信,而是通过与中介者进行通信。通过中介者解耦系统各层次对象的直接耦合,层次对象的对外依赖通信统统交由中介者转发......
  • 常用的设计模式
    常用设计模式1.单例模式立即加载实例化:饿汉式单例模式在类装载到JVM时就完成了实例化,也就是说,当类被加载到JVM时,单例对象就已经被创建出来了。这种方式也被称为“饱汉模式”或“静态常量方式”。线程安全:由于饿汉式单例模式在类加载时就完成了实例化,并且这个实例是静态的,......
  • Linux C++ 045-设计模式之工厂模式
    LinuxC++045-设计模式之工厂模式本节关键字:Linux、C++、设计模式、简单工厂模式、工厂方法模式、抽象工厂模式相关库函数:简单工厂模式基本简介从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactoryMethod)模式,但不属于23种GOF设计模......
  • 设计模式探索:适配器模式
    1.适配器模式介绍1.1适配器模式介绍适配器模式(adapterpattern)的原始定义是:将一个类的接口转换为客户期望的另一个接口,适配器可以让不兼容的两个类一起协同工作。适配器模式的主要作用是把原本不兼容的接口,通过适配修改做到统一,使得用户方便使用。比如,万能充电器和多......
  • 设计模式学习(二)工厂模式——抽象工厂模式+注册表
    目录前言使用简单工厂改进使用注册表改进参考文章前言在上一篇文章中我们提到了抽象工厂模式初版代码的一些缺点:①客户端违反开闭原则②提供方违反开闭原则。本文将针对这两点进行讨论使用简单工厂改进对于缺点①,我们可以使用简单工厂的思路来改进抽象工厂的初版代码。对于上......
  • 住宅代理、移动代理和数据中心代理之间的区别
    如果您是一名认真的互联网用户,可能需要反复访问某个网站或服务器,可能是为了数据抓取、价格比较、SEO监控等用例,而不会被IP列入黑名单或被CAPTCHA阻止。代理的工作原理是将所有传出数据发送到代理服务器,然后代理服务器将其发送到目标服务器。目标服务器从代理接收数据并......
  • 运维锅总详解设计模式
    本首先简介23种设计模式,然后用Go语言实现这23种设计模式进行举例分析。希望对您理解这些设计模式有所帮助!一、设计模式简介设计模式是软件设计中用于解决常见设计问题的一套最佳实践。它们不是代码片段,而是解决特定问题的通用方案。设计模式分为三大类:创建型模式、结构型......
  • 设计模式之工厂模式
    1.前言最近在看《大话设计模式》这本书,虽然大学也学过设计模式,但是那时候还没有进行过开发,那么多的设计模式,看了也不知道用在哪种场景,最近又突然有时间了,就想着重新理解一遍软件的设计模式,本篇博客的原地址为runoob2.工厂模式的简介工厂模式(FactoryPattern)是Java中最常用的......