当前位置: 首页 > news >正文

网站制作公司业务员合肥seo公司

网站制作公司业务员,合肥seo公司,企业网站推广有哪些工具和方法?,国外html5做的音乐网站代理模式学习笔记 什么是代理? 代理是一种设计模式,用户可以通过代理操作,而真正去进行处理的是我们的目标对象,代理可以在方法增强(如:记录日志,添加事务,监控等) 拿一…

代理模式学习笔记

什么是代理?

代理是一种设计模式,用户可以通过代理操作,而真正去进行处理的是我们的目标对象,代理可以在方法增强(如:记录日志,添加事务,监控等)

拿一个例子说话。

Uservice.java:接口,有个一保存用户的接口

public interface UserService {void save();
}

实现类

public class UserServiceImpl implements UserService {@Overridepublic void save() {System.out.println("添加User");}
}

如果现在提出一个需求,需要在Service方法上都要记录日志。那常规做法就是在方法上加上记录日志的逻辑。

public class UserServiceProxy implements UserService {@Overridepublic void save() {System.out.println("开启日志--");System.out.println("添加User");}
}

但是这样,如果接口有很多方法。那就要每一个方法都要去添加这段逻辑。

这个时候就需要请我们的代理来做了,用户通过代理去调用方法,代理就去找目标方法去做事

public class UserServiceProxy  implements UserService {private UserService target;public UserServiceProxy(UserService target) {this.target = target;}public void save(){System.out.println("开启日志");target.save();}
}
public class Main {public static void main(String[] args) {UserServiceProxy userServiceProxy = new UserServiceProxy(new UserServiceImpl());userServiceProxy.save();}
}

这样在使用的时候直接传入我们的目标对象给代理,就能每一个方法都能记录日志,其实这个就是静态代理,代理分为静态代理和动态代理两种。静态代理的特点就是要实现接口,如果接口后面要进行拓展修改,就需要我们去手动修改代理对象的方法。

所以这时候就需要动态代理了。

静态代理

上面以及介绍了静态代理了

动态代理

动态代理的特定就是不需要实现接口,但是需要使用JDK的api,用到里面的Proxy

Proxy.newProxyInstance()

参数1ClassLoader:类装载器

参数2interfaces:代理类的接口

参数3InvocationHandler:方法调用执行器

image-20250129233250820

将上述类中方法用动态代理的方式改写

public class UserServiceProxy{UserService userService = new UserServiceImpl();public UserService getInstant(){return (UserService)Proxy.newProxyInstance(UserServiceProxy.class.getClassLoader(), userService.getClass().getInterfaces(),new InvocationHandler() {/*** @param proxy 代理对象 --- UserServiceProxy** @param method 代理对象调用的方法** @param args 方法参数** @return* @throws Throwable*/@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println("开启日志--");return method.invoke(userService, args);}});}
}

调用处:

public class Main {public static void main(String[] args) {UserServiceProxy userServiceProxy = new UserServiceProxy();UserService proxyInstant = userServiceProxy.getInstant();proxyInstant.save();}
}

运行结果:

image-20250129235113045

http://www.yidumall.com/news/63395.html

相关文章:

  • 网站做戒酒通知书东莞网站建设seo
  • 有免费的网站服务器吗网站top排行榜
  • 源码下载网站网络优化工程师骗局
  • 学做西点的网站网络营销竞价推广
  • 做网站怎么赚钱的网络营销logo
  • 巴彦淖尔网站建设企业培训考试app
  • 做药的常用网站线下推广的渠道和方法
  • 茶叶网页设计模板图片广州seo推荐
  • 吕梁网站建设成人电脑速成培训班
  • 网站维护会导致打不开网页吗?广东互联网网络营销推广
  • 中国保密在线网站培训 今日头条
  • vue 做门户网站信息流广告是什么
  • 聊城做网站的公司seo服务公司怎么收费
  • 好网站开发公司网站seo具体怎么做
  • 金华网站制作营销搜易网托管模式的特点
  • 网站服务器 免费网站优化设计的基础是网站基本要素及每个细节的优化
  • 视频拍摄app佛山旺道seo优化
  • .flv 网站播放2345网址导航设为主页
  • 企业网站页头背景图成都自然排名优化
  • 外贸公司如何寻找客户专业网站seo推广
  • 临沂网站排名中国十大经典广告
  • 百度搜索 网站介绍百度免费推广有哪些方式
  • 怎么建手机网站平台seo外链推广
  • 做信息类网站seo培训优化课程
  • 网站建设费用初步预算百度提交
  • 做网站前怎么建立数据结构游戏加盟
  • 建设快照网站百度搜题在线使用
  • 萧山网络公司潍坊网站建设优化
  • 呼和浩特网站建设小程序重庆seo团队
  • 网站开发哪里接业务论文关键词