今年過年手氣好,打牌贏了100塊,
我得意的笑,我得意的笑,總之一個(gè)字“爽”。因?yàn)橥甏蚺茝臎]贏過?。∥腋吲d的回到家里,還沒等我開口報(bào)告戰(zhàn)況,老婆撂給我一句話“我弟要回上海,你給買
張票吧。”我心里雖然不高興,但臉上卻表現(xiàn)出很開心的樣子,立刻用堅(jiān)定語氣說到:“請(qǐng)領(lǐng)導(dǎo)放心,保證完成任務(wù)!”。保證歸保證,可是大過年的票也確實(shí)難
買,在經(jīng)過一番挫折后(嗚嗚),我只好去找票販子(Proxy)。
說到代理這個(gè)詞,大家可能都不陌生,其實(shí)現(xiàn)在社會(huì)上的好多中介也可以理解成為代理,說白了就是幫你辦事,拿中介費(fèi)而已。
1、在這里,先把買票這個(gè)活動(dòng)定義成一個(gè)接口(BuyTicket)類:
public interface BuyTicket {
public void buyTicket();
}
2、下面我們要對(duì)這兩個(gè)接口進(jìn)行實(shí)現(xiàn)
A:正常情況下的買票活動(dòng)(NormalBuyTicket)類:
public class NormalBuyTicket implements BuyTicket{
public void buyTicket(){
System.out.println("買火車票!");
}
}
B:代理情況下的買票活動(dòng)(ProxyBuyTicket)類:
//當(dāng)不能直接訪問NormalBuyTicket對(duì)象時(shí),必須要用代理對(duì)象
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("獲得代理費(fèi)!");
}
}
3、編寫測(cè)試類:
public class Test {
public static void main(String args[]){
BuyTicket buyTicket = new ProxyBuyTicket();
buyTicket.buyTicket();
}
}
4、說明:
A:定義:為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問。也就是說當(dāng)我們不能直接訪問我們想訪問的對(duì)象時(shí),必須通過一個(gè)代理對(duì)象來訪問。
B:在本例中,我想買票,但當(dāng)我直接買不到票時(shí),就只好通過票販子來買,這個(gè)道理應(yīng)該誰都知道啊。
5、后記:
最終通過票販子,我獲得了去上海的票,老婆很高興,還說我很能干,但是我付出了100元的代理費(fèi),我到底該哭還是該笑呢,但又想一下:“花100元讓老婆表揚(yáng)我,說我很能干,也不錯(cuò)啊,你說呢!嘿嘿”。