設計模式之Proxy——買票篇(轉)

          Posted on 2007-10-12 16:04 Jaunt 閱讀(236) 評論(0)  編輯  收藏 所屬分類: 設計模式(java)

          今年過年手氣好,打牌贏了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元讓老婆表揚我,說我很能干,也不錯啊,你說呢!嘿嘿”。

          主站蜘蛛池模板: 永昌县| 宜章县| 延寿县| 祁门县| 固安县| 乌兰察布市| 来安县| 长白| 阿合奇县| 溧水县| 五常市| 乡宁县| 万山特区| 成武县| 巩留县| 怀化市| 延庆县| 贵阳市| 周宁县| 宁蒗| 新巴尔虎右旗| 河间市| 改则县| 和硕县| 双辽市| 沂水县| 许昌县| 福鼎市| 酉阳| 灵寿县| 阿拉善盟| 宁乡县| 丹棱县| 韶山市| 高唐县| 仙居县| 庄河市| 吐鲁番市| 汕尾市| 竹溪县| 肥西县|