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

网站制作公司业务员品牌推广方案怎么写

网站制作公司业务员,品牌推广方案怎么写,微信上的网站怎么做,三水网站制作代理模式学习笔记 什么是代理? 代理是一种设计模式,用户可以通过代理操作,而真正去进行处理的是我们的目标对象,代理可以在方法增强(如:记录日志,添加事务,监控等) 拿一…

代理模式学习笔记

什么是代理?

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

拿一个例子说话。

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.hrbkazy.com/news/14925.html

相关文章:

  • 小程序商店官网seo实战培训教程
  • pc网站转换成wap海外网站cdn加速
  • 西宁的网站建设公司深圳网站开发公司
  • 网站备案管理2022国内外重大新闻事件10条
  • 网站seo怎么做windows优化大师
  • 做个简单的公司网站要多少钱网盘资源
  • 公司网站怎么管理百度数据平台
  • 宁夏建设工程招投标管理中心网站淘宝指数转换工具
  • 安康网站建设制作房地产最新消息
  • 湘潭商城网站建设定制互联网推广招聘
  • java wordpress优化大师怎么下载
  • 做网站要霸屏吗东莞网站seo公司
  • 网站的分类有哪些内容企业文化墙
  • hexo做网站怎么卸载windows优化大师
  • 无锡市政府网站建设关键seo排名点击软件
  • 清华大学自动化系360优化大师软件
  • 自己做网站想更换网址网络营销课程速成班
  • 网站开发中的著作权归属seo优化网站快速排名
  • asp.net 网站建设方案互联网营销推广服务商
  • 建设银行 上海科技中心网站代运营套餐价格表
  • 做网站需要哪些技能互联网优化
  • 做设计网站的工作内容如何制作网址
  • 国外做宠物产品的网站一站式网站设计
  • asp做新闻网站网站开发的基本流程
  • 有网站有安全狗进不去了百度竞价推广账户
  • 百度站长中心广告做到百度第一页
  • 国内家居行业网站开发在线一键免费生成网页网站
  • 网站怎样做有利于seo教育培训网站大全
  • 模板网站可以做webapp免费发布活动的平台
  • 如何做网站来做淘宝客sem竞价培训