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

网站的服务器怎么做ps网页制作素材

网站的服务器怎么做,ps网页制作素材,运城市住房和城乡建设局网站,湖南工程建设监理有限公司网站代理模式学习笔记 什么是代理? 代理是一种设计模式,用户可以通过代理操作,而真正去进行处理的是我们的目标对象,代理可以在方法增强(如:记录日志,添加事务,监控等) 拿一…

代理模式学习笔记

什么是代理?

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

拿一个例子说话。

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.yayakq.cn/news/133388/

相关文章:

  • 站长之家ip查询如何查看网站建设的时间
  • 凡科的网站怎么仿高端建站属于外包公司么
  • 南宁网站建设服务商长期做网站应该购买稳定的空间
  • 五金塑胶 技术支持 东莞网站建设什么软件能看网站?
  • 移动端网站开发教案WordPress抓取豆瓣
  • 企业网站构建方案企业园区网络设计方案
  • 超市的网站怎么建设谁帮助汉字叔叔做网站
  • flash网站收录酒水代理加盟免费铺货
  • 海外手表网站搜易网服务内容
  • 做网站域名大概多少钱建立销售型网站
  • 做网站实训总结做网站做一个什么主题的
  • 制作大型网站镇江网友之家手机版
  • 阜宁县住房和城乡建设局网站公司网站制作应该注意些什么
  • 网站运营工作内容精准流量推广
  • 网站 展示板动漫网站建设的目标
  • 网站里的地图定位怎么做的永康好口碑关键词优化
  • 短视频拍摄价目表网站如何seo
  • 网站搭建设计是什么知名网站建设推荐
  • 兰州做网站哪个平台好浙江省城乡与住房建设厅网站
  • 高端网站定制策划广告联盟排行榜
  • 浙江省水利建设行业协会网站天元建设集团有限公司市值
  • 企业网站推广有哪些装修公司加盟费多少
  • 百度云盘官网制作网站公司选 择乐云seo专家
  • 所有搜索引擎蜘蛛不来网站了网站建设的大公司好
  • 成都行业网站设计郑州七彩网站建设公司 交通
  • 怎么做网站推广多少钱主流网站编程语言
  • 网站建设推广营销策划广东省建设工程执业资格注册中心网站
  • 济南建站公司模板公司企业邮箱怎么填写
  • html5魔塔网络优化的工作流程
  • wordpress英文站群永久免费的仓库管理软件