静态代理

模拟经纪人与明星开演唱会

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 confer() {
   System.out.println("RealStar.confer()");
 }
@Override
 public void signContract() {
  System.out.println("RealStar.signContract()");
 }
@Override
 public void sing() {
  System.out.println(this.name +"唱歌");
 }
@Override
 public void coleectMoney() {
   System.out.println("RealStar.coleectMoney()");
 }
public String getName() {
  return name;
 }
public void setName(String name) {
  this.name = name;
 }
}
public class ProxyStar implements Star{
  private Star s;
  
 @Override
 public void confer() {
   System.out.println("ProxyStar.confer()");;
 }
@Override
 public void signContract() {
  System.out.println("ProxyStar.signContract()");  
 }
@Override
 public void sing() {
  if(s instanceof RealStar)
  {
   RealStar star=(RealStar)s;
   star.sing();
  }else {
   s.sing();
  }
 }
@Override
 public void coleectMoney() {
  System.out.println("ProxyStar.coleectMoney()");
 }
public ProxyStar(Star ps) {
  this.s = ps;
 }
}
/**
 * 客户端
 * @author 小帆敲代码
 *
 */
public class Client {
 public static void main(String[] args) {
  Star real=new RealStar("Jay");
  Star proxy=new ProxyStar(real);
  proxy.confer();
  proxy.signContract();
  proxy.sing();
  proxy.coleectMoney();
 }
}

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

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

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

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

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

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

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

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

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

  5. Java设计模式之虚拟代理模式

    描述: 虚拟代理模式(Virtual Proxy)是一种节省内存的技术,它建议创建那些占用大量内存或处理复杂的对象时,把创建这类对象推迟到使用它的时候.在特定的应用中,不同部分的功能由不同的对象组成, ...

  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. shell 批量转换文件编码
  2. AI一分钟 | 柯洁战胜AI“求报道”,期待正式与围棋AI下让子棋;小米MIUI 10全面启动,主打人工智能人机交互
  3. 16岁自闭少年被指黑掉英伟达微软,曾赚1400万美元,英国警方逮捕7人
  4. m4a录音文件损坏修复_智慧输入再升级 搜狗输入法创新推出AI录音助手功能
  5. wpservice.exe应用程序错误
  6. HTML5 progress元素的样式控制、兼容与实例
  7. boost::geometry模块实现自定义点示例
  8. Oracle union all和order by一起使用
  9. 【JAVA】java代码实现print2Flash转swf文件,百度文库一样。
  10. 常用的公共数据集(二)
  11. AI周报丨多个国内团队使用人工智能揭示蛋白质相互作用;超参数调优河伯、组合优化器CompBO,华为诺亚开源贝叶斯优化库
  12. 如何设置电脑的保护色?
  13. java 获取est时间_java – 在EST时区获取XMLGregorianCalendar日期
  14. 基于SSM框架社交媒体实现
  15. C++计算机二级操作题(二)
  16. 关于无迹卡尔曼滤波(UKF)的权重
  17. 那些你觉得堪称神兵利器的 Chrome 插件
  18. 如何加载3D模型(odj文件和mtl文件)
  19. JAVA微信公众号开发之自动回复消息与图片
  20. 08年的最后一个夜晚

热门文章

  1. 上周热点回顾(4.30-5.6)
  2. iOS 使用脚本自动化复制target
  3. Codeforces Round #442 (Div. 2) D. Olya and Energy Drinks
  4. java的IO操作之--RandomAccessFile
  5. weblogic 找不到数据源问题
  6. L2-010 排座位 (25 分)(并查集)
  7. linux下查看使用的显示服务器类型
  8. ECMAScript 学习笔记01
  9. 清华大学操作系统OS学习(十四)——文件系统和文件描述符
  10. Your shell has not been properly configured to use ‘conda activate‘. If your shell is Bash or a Bour