• 设计模式之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();
     }
    }
  • 相关阅读:
    让UILabel具有链接功能,点击后调用safari打开网址
    自定义UITableViewCell上的delete按钮
    iOS7 SDK各种坑——手Q团队总结
    字符串转成NSDate类型,计算与当前时间的相差,年数,天数,时分秒
    AFNetworking 2.0 Migration Guide
    UIView Class Reference
    AFNetworking实现程序重新启动时的断点续传
    CI框架下JS/CSS文件路径的设置
    CI session的使用
    php调用QQ登录(第三方登录)
  • 原文地址:https://www.cnblogs.com/code-fun/p/11332313.html
Copyright © 2020-2023  润新知