デザインパターンGOF23プロキシモード02

帯電防止剤

アナログブローカーやスターコンサート

スター・インターフェース{パブリック
 / **
  *インタビュー
  * /
  与える時のボイド();
  / **
   *契約
   * /
  無効signContract();
  / **
   *歌う
   * /
  無効シング();
  / **
   *最終的な支払い受け取る
   * /
  ボイドcoleectMoney();
}

パブリッククラスRealStarはスター{実装
  プライベート文字列名を、
  
 公共RealStar(文字列名){
   this.name =名。
  }
 @Override
 公共ボイド与える(){
   System.out.printlnは( "RealStar.confer()")。
 }
 @Override
 公共ボイドsignContract(){
  System.out.printlnは( "RealStar.signContract()")。
 }
 @Override
 公共ボイドは(){歌う
  のSystem.out.println(this.name +を"唱歌")。
 }
 @Override
 公共ボイドcoleectMoney(){
   System.out.printlnは( "RealStar.coleectMoney()")。
 }
 パブリック文字列のgetName(){
  名前を返します。
 }
 公共ボイドのsetName(文字列名){
  this.name =名。
 }
}
パブリッククラスProxyStarはスターを{実装
  プライベートスター秒;
  
 @Override
 公共ボイド与える(){
   System.out.printlnは( "ProxyStar.confer()");;
 }
 @Override
 公共ボイドsignContract(){
  System.out.printlnは( "ProxyStar.signContract()")。  
 }
 @Override
 公共ボイド{)(歌う
  (S RealStar instanceofの)場合
  、{
   RealStar星=(RealStar)S。
   star.sing();
  {}他
   )(s.sing。
  }
 }
 @Override
 公共ボイドcoleectMoney(){
  System.out.printlnは( "ProxyStar.coleectMoney()")。
 }
 公共ProxyStar(スターPS){
  this.s = PS。
 }
}
/ **
 *客户端
 * @author小帆敲代码
 *
 * /
publicクラスClientの{
 公共の静的な無効メイン(文字列[] args){
  スターリアル=新RealStar( "ジェイ");
  スタープロキシ=新しいProxyStar(本当の);
  proxy.confer();
  proxy.signContract();
  proxy.sing();
  proxy.coleectMoney();
 }
}

おすすめ

転載: www.cnblogs.com/code-fun/p/11332313.html
おすすめ