星零
No reason. I just like it.
代理(Proxy)模式,顾名思义就是对象之间不直接发生联系,而是通过中间的代理人进行沟通。这种关系在现在的娱乐圈中普遍存在:明星通常都有经纪人来代理自己的演出事宜,而不是直接去联系演出商。下面就通过这个实际中的例子来说明代理模式。
首先画出关系类图

可以看出,这里并没有经纪人(Broke)类,而是新增了一个经纪人操作类 (BrokeHandler),这是因为通过Proxy.newProxyInstance()方法,Java API将自动为我们生成一个对于Artist接口的代理类(即:Broke),我们只需定义代理的操作即可.

演艺人士:包括经纪人和明星,都属于娱乐圈中人。
   /**
 * 演艺人士
 * 
 *  @author  zJun
  
*/

public   interface  Artist  {
     
/**
     * 演出活动
      
*/

     
public   void  show(String showType);
}

经纪人

   /**
 * 经纪人(参考《Java与模式》- "代理(Proxy)模式"一章部分代码)
 * 
 *  @author  zJun
 * 
  
*/

public   class  Broker  implements  Artist, InvocationHandler  {

     
private  String SIGN  =   " [经纪人] " ;

     
//  旗下明星
     private  Star star;

     
/**
     * 签订和约
      
*/

     
public   void  subcontract()  {
        System.
out.println(SIGN  +   " 签订和约 " );
    }


     
/**
     * 经纪人代明星打理一切演出事宜
      
*/

     
public   void  show(String showType)  {
         
//  签约
        subcontract();

         
//  通知明星演出
         if  (star  ==   null )  {
            star  
=   new  Star();
        }

        star.show(showType);

         
//  交税
        payTax();
    }


     
/**
     * 演出后交税
      
*/

     
public   void  payTax()  {
        System.
out.println(SIGN  +   " 演出后交税 " );
    }

}


明星

   /**
 * 明星
 * 
 *  @author  zJun
 * 
  
*/

public   class  Star  implements  Artist  {

     
private  String SIGN  =   " [明星] " ;

     
public   void  show(String showType)  {
        System.
out.println(SIGN  +  showType);
    }


}

赞助商:通过联系经纪人安排明星演出
   /**
 * 赞助商: 与经纪人联系安排演出事宜
 * 
 *  
@author  zJun
  
*/

public   class  Patron  {

     
/**
     *  
@param  args
      
*/

     
public   static   void  main(String[] args)  {
        Broker broker  
=   new  Broker();
        broker.show( 
" 演电影 " );
        broker.show( 
" 拍电视 " );
        broker.show( 
" 出唱片 " );
        broker.show( 
" 演唱会 " );
    }


}

[运行结果]
[  经纪人  ]     签订和约
[ 明星 ] 演电影
[ 经纪人 ] 演出后交税
[ 经纪人 ] 签订和约
[ 明星 ] 拍电视
[ 经纪人 ] 演出后交税
[ 经纪人 ] 签订和约
[ 明星 ] 出唱片
[ 经纪人 ] 演出后交税
[ 经纪人 ] 签订和约
[ 明星 ] 演唱会
[ 经纪人 ] 演出后交税
参考资料
《Java与模式》 阎宏 电子工业出版社
posted on 2008-01-23 18:55  Star.Stroll  阅读(1007)  评论(0编辑  收藏  举报