设计模式之Proxy(买票篇)

今年过年手气好,打牌赢了 100块,我得意的笑,我得意的笑,总之一个字“爽”。因为往年打牌从没赢过啊!我高兴的回到家里,还没等我开口报告战况,老婆撂给我一句话“我弟要回上海,你给买张票吧。”我心里虽然不高兴,但脸上却表现出很开心的样子,立刻用坚定语气说到:“请领导放心,保证完成任务!”。保证归保证,可是大过年的票也确实难买,在经过一番挫折后(呜呜),我只好去找票贩子( Proxy )。
          说到代理这个词,大家可能都不陌生,其实现在社会上的好多中介也可以理解成为代理,说白了就是帮你办事,拿中介费而已。
           1 、在这里,先把买票这个活动定义成一个接口( BuyTicket )类:
          public interface BuyTicket {
          public void buyTicket();
          }
           2 、下面我们要对这两个接口进行实现
          A :正常情况下的买票活动( NormalBuyTicket )类:
          public class NormalBuyTicket implements BuyTicket{
          public void buyTicket(){
          System.out.println(" 买火车票! ");
          }
          }
          B :代理情况下的买票活动( ProxyBuyTicket )类:
          // 当不能直接访问 NormalBuyTicket 对象时,必须要用代理对象
          public class ProxyBuyTicket implements BuyTicket{
          private NormalBuyTicket normalBuyTicket;
          public void buyTicket(){
          if(normalBuyTicket==null){
          normalBuyTicket = new NormalBuyTicket();
          }
          normalBuyTicket.buyTicket();
          getMoney();
          }
          public void getMoney(){
          System.out.println(" 获得代理费! ");
          }
          }
           3 、编写测试类:
          public class Test {
          public static void main(String args[]){
          BuyTicket buyTicket = new ProxyBuyTicket();
          buyTicket.buyTicket();
          }
          }
           4 、说明:
          A : 定义: 为其他对象提供一种代理以控制对这个对象的访问。也就是说当我们不能直接访问我们想访问的对象时,必须通过一个代理对象来访问。
          B :在本例中,我想买票,但当我直接买不到票时,就只好通过票贩子来买,这个道理应该谁都知道啊。
           5 、后记:
          最终通过票贩子,我获得了去上海的票,老婆很高兴,还说我很能干,但是我付出了 100 元的代理费,我到底该哭还是该笑呢,但又想一下:“花 100 元让老婆表扬我,说我很能干,也不错啊,你说呢!嘿嘿”。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值