静态代理

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

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. 设计模式之GOF23代理模式01

    代理模式 核心作用: -通过代理,控制对对象的访问 -可以详细控制机制访问某个(某类)对象的方法,在调用这个方法前做前置处理,调用这个方法后做 后置处理(AOP的微观实现) 应用场景 -安全代理:屏蔽 ...

  2. 设计模式之GOF23代理模式03

    动态代理 public class StarHandler implements InvocationHandler{  Star realStar; public StarHandler(Star ...

  3. 设计模式之GOF23原型模式02

    利用序列化和反序列化完成深复制 ByteArrayOutputStream bos=new ByteArrayOutputStream();  ObjectOutputStream oos=new O ...

  4. 设计模式之GOF23工厂模式02

    抽象工厂模式 不能添加单个产品,产品族 public interface Seat {  void anmo();}class GoodSeat implements Seat { @Override ...

  5. java设计模式之Proxy(代理模式)

    java设计模式之Proxy(代理模式) 2008-03-25 20:30 227人阅读 评论(0) 收藏 举报 设计模式javaauthorizationpermissionsstringclass ...

  6. Java设计模式之《代理模式》及应用场景

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6525527.html 代理模式算是我接触较早的模式,代理就是中介,中间人.法律上也有代理, ...

  7. Java设计模式:Proxy(代理)模式

    概念定义 代理模式是一种使用代理对象来执行目标对象的方法并在代理对象中增强目标对象方法的一种设计模式. 使用代理模式的原因有: 中介隔离作用:在某些情况下,一个客户类不想或者不能直接引用一个委托对象, ...

  8. 简介Python设计模式中的代理模式与模板方法模式编程

    简介Python设计模式中的代理模式与模板方法模式编程 这篇文章主要介绍了Python设计模式中的代理模式与模板方法模式编程,文中举了两个简单的代码片段来说明,需要的朋友可以参考下 代理模式 Prox ...

  9. 设计模式系列之代理模式(Proxy Pattern)——对象的间接访问

    说明:设计模式系列文章是读刘伟所著<设计模式的艺术之道(软件开发人员内功修炼之道)>一书的阅读笔记.个人感觉这本书讲的不错,有兴趣推荐读一读.详细内容也可以看看此书作者的博客https:/ ...

随机推荐

  1. codeforces 122C perfect team

    You may have already known that a standard ICPC team consists of exactly three members. The perfect ...

  2. 安卓虚拟定位软件Fake Location重大更新

    前段时间网上找安卓虚拟定位的软件,找了很久,大部分都是多开修改APP,或者是不可用的,最后在KUAN找到一个作者Lerist做的虚拟定位软件 Fake Location ,配合作者本人的一键解锁sys ...

  3. redis:String字符串类型(三)

    字符串拼接(如果key不存在则创建):append name " applesnt" 获取字符串的长度:strlen name 127.0.0.1:6379> set nam ...

  4. 挑战全网最幽默的Vuex系列教程:第三讲 Vuex旗下的Mutation

    写在前面 上一讲「Vuex 旗下的 State 和 Getter」,告诉了我们怎么去使用仓库 store 中的状态数据.当然,光会用肯定还不够,大部分的应用场景还得对这些状态进行操控,那么具体如何操控 ...

  5. 细说show slave status参数详解

    在搭建好mysql主从之后,我们一般在从库上通过命令 show slave status\G 来查看主从的状态,会有很多的参数,接下来笔者就带大家好好的了解这些参数 root@localhost (n ...

  6. opencv-1-QT_OPENCV 安装

    opencv-1-QT_OPENCV 安装 qtopencvc++ 既然我们是从头开始的, 那我们就从 opencv 的安装开始吧, 主要环境为: win10 1909 - 18363.720 版本 ...

  7. 【React踩坑记六】create-react-app创建的react项目通过iP地址访问(实现局域网内访问)

    同项目组的小伙伴想用自己的电脑访问我电脑上开发阶段的create-react-app创建的react项目. 试过了了各种内网穿透工具ngrok以及localtunnel等. 奈何打开效率实在太过于龟速 ...

  8. 【万字长文】别再报班了,一篇文章带你入门Python

    本文始发于个人公众号:TechFlow,原创不易,求个关注 最近有许多小伙伴后台联系我,说目前想要学习Python,但是没有一份很好的资料入门.一方面的确现在市面上Python的资料过多,导致新手会不 ...

  9. P2542 【[AHOI2005]航线规划】

    P2542 [[AHOI2005]航线规划] 一个无向图,m个操作 删去一条边 给定两个点,求有多少边使得如果这条边不存在,给定的两个点不连通 一般这种删边的题目,考虑逆序加边处理 在删完的图中,任意 ...

  10. 纯django开发最完美博客

    2020年5月打造最时尚博客系统教程 为了学习速度,集中精力学习django和博客开发, 没有使用其它框架,也没有使用css预处理等 这样学起来最方便, 博客前后端都完成, www.duanshuil ...