zoukankan      html  css  js  c++  java
  • 设计模式之GOF23代理模式02

    静态代理

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

    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();
     }
    }
  • 相关阅读:
    Educational Codeforces Round 64(ECR64)
    [网络流]BZOJ4657 tower 最小割约束
    009:JSON
    008:数据类型
    007:MySQL SSL
    006:多实例安装
    005: 存储引擎介绍
    004:MySQL数据库体系结构
    003:MySQL账号创建授权以及Workbench
    002:MySQL升级以及访问连接
  • 原文地址:https://www.cnblogs.com/code-fun/p/11332313.html
Copyright © 2011-2022 走看看