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();
     }
    }
  • 相关阅读:
    UNIGUI与UNIURLFRAME的互动
    unigui结合JS方法记录
    如何将uniurlframe中html调用delphi的函数
    XE下显示托盘图标(TrayIcon)
    Delphi fmx控件在手机滑动与单击的问题
    Delphi使用iTools安卓模拟器
    Delphi调用SQL分页存储过程实例
    分享Pos函数(比FastPos还要快)
    Delphi Excel导入 的通用程序转载
    Delphi控件cxGrid 如何动态创建列?
  • 原文地址:https://www.cnblogs.com/code-fun/p/11332313.html
Copyright © 2011-2022 走看看