动态代理

public class StarHandler implements InvocationHandler{
  Star realStar;
 public StarHandler(Star realStar) {
   this.realStar = realStar;
  }
@Override
 public Object invoke(Object proxy, Method method, Object[] args)
   throws Throwable {
  Object obj=null;
  System.out.println("面谈");
  System.out.println("签合同");
  //核心代码
  if(method.getName().equals("sing"))
  {
   obj=method.invoke(realStar, args);
  }
  System.out.println("收尾款");
  return obj;
 }
}
public interface Star {
 /**
  * 面谈
  */
  void confer();
  /**
   * 签合同
   */
  void signContract();
  /**
   * 唱歌
   */
  void sing();
  /**
   * 收尾款
   */
  void coleectMoney();
}
public class RealStar implements Star {
  private String name;
  
 public RealStar(String name) {
   this.name = name;
  }
 @Override
 public void sing() {
  System.out.println(this.name +"唱歌");
 }
 public String getName() {
  return name;
 }
public void setName(String name) {
  this.name = name;
 }
 @Override
 public void confer() {
System.out.println("RealStar.confer()");  
 }
 @Override
 public void signContract() {
System.out.println("RealStar.signContract()");  
 }
 @Override
 public void coleectMoney() {
System.out.println("RealStar.coleectMoney()");  
 }
}
public class Client {
  public static void main(String[] args) {
   Star realStar =new RealStar("Jay");
   StarHandler handler=new StarHandler(realStar);
   Star proxy=(Star) Proxy.newProxyInstance(ClassLoader.getSystemClassLoader(), new Class[] {Star.class},handler );
      proxy.sing();
  }
}

解析动态代理过程

设计模式之GOF23代理模式03相关推荐

  1. 设计模式学习之代理模式学习(一)

    设计模式学习之代理模式学习(一) 关于设计模式想必学习过Java语言的人都知道吧,当时对其进行深入学习的的人应该不是很多.在我看来设计方面的知识相比于框架应用配置等知识要有意思的多,并且设计模式的对一 ...

  2. 设计模式之静态代理模式实战

    转载自 设计模式之静态代理模式实战 静态代理模式很简单,代理类和实现类都实现相同的接口,然后通过代理类来调用实现类的方法. 如我们想保存用户信息之前打印用户信息,或者保存用户信息之后把这些信息缓存下来 ...

  3. 设计模式之蝉——代理模式上中

    代理模式的扩展 1 普通代理 :这种代理就是客户端只能访问代理角色,而不能访问真实角色.与设计模式之蝉--代理模式上 片基本差不多. (1)Subject抽象主题角色: (2)RealSubject具 ...

  4. 每日一个设计模式之【代理模式】

    文章目录 每日一个设计模式之[代理模式] ☁️前言

  5. 设计模式之禅-代理模式

    目录 代理模式 例子 定义 优点 使用场景 扩展 普通代理 强制代理 代理的个性-增强 动态代理 代理模式 例子 public interface IGamePlayer {/*** 登录游戏*/vo ...

  6. 大话设计模式C++版——代理模式

        本篇開始前先发个福利,程杰的<大话设计模式>一书高清电子版(带文件夹)已上传至CSDN,免积分下载. 下载地址:http://download.csdn.net/detail/gu ...

  7. Java24种设计模式(第二种)--代理模式(Proxy Pattern)

    Java24种设计模式 (第二种) 一.代理模式(Proxy Pattern) 模式逻辑: 什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道 被代理人能做哪些事 ...

  8. 23种java设计模式详解-代理模式

    什么是代理模式: Proxy模式又叫做代理模式,是构造型的设计模式之一,它可以为其他对象提供一种代理(Proxy)以控制对这个对象的访问.所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类, ...

  9. 设计模式:4.代理模式

    代理模式 代理模式属于结构型模式 定义:为其他对象提供一种代理以控制对这个对象的访问 代理模式就是在操作原对象的时候,多出来一个代理类,用来对原对象的访问进行控制和替代原对象进行一些操作 模式类图 角 ...

  10. 《设计模式系列》- 代理模式

    有情怀,有干货,微信搜索[三太子敖丙]关注这个有一点点东西的程序员. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的系列文 ...

最新文章

  1. shiro 没有注销再登录_Shiro 详细介绍 068
  2. python判断远程文件是否存在
  3. 课后作业:情境二:数据类型与运算符 3、运算符及表达式
  4. hibernate示例_通过示例Hibernate–第1部分(删除孤儿)
  5. Visual C++中MFC消息的分类
  6. 前端工程化(ES6模块化和webpack打包)
  7. 《MYSQL必知必会》— 14~17.子查询、联结、高级联结、组合查询
  8. P2P端口映射 UPnP功能和使用详解
  9. python3 模拟键盘_python3 模拟鼠标和键盘操作
  10. pdf拆分成多个文件,方法步骤
  11. 忠和资本:2021年后市刘国忠行情预测
  12. 【TLD】改进后的TLD视频目标跟踪方法的MATLAB仿真
  13. img显示服务器本地图片,img显示服务器图片不显示
  14. 手机上可以拍蓝底证件照吗
  15. 3dsMax---期末设计[CC‘s 游乐园’]
  16. Docker的降维打击是怎么利用天时地利人和的?看这一篇就够了
  17. 以太网络(网口)变压器简介,功能,结构及典型的以太网网口电路
  18. Java图书管理系统简化版期末考核作业
  19. VMware虚拟机如何设置从U盘启动
  20. Java高级:java文档生成器命令

热门文章

  1. Php调用工行支付接口时的问题解决
  2. 怎样当一个企业舍不得的人
  3. java hashtable 修改_Java Hashtable computeIfAbsent()用法及代码示例
  4. 现浇板用弹性计算方法_现浇板裂缝处理办法全总结!
  5. 拓端tecdat|R语言估计获胜概率:模拟分析学生多项选择考试通过概率可视化
  6. 拓端tecdat|视频:R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格
  7. 拓端tecdat|决策树算法建立电信客户流失模型
  8. linux opendir php,php目录遍历函数opendir用法实例
  9. SMOTE(Synthetic Minority Over-Sampling Technique ,即“人工少数类过采样法“)----Python调包简单实现
  10. 医学图像分割--U-Net: Convolutional Networks for Biomedical Image Segmentation