一個小伙子喜歡上了隔壁班的一個妹子,但是又不認識,也害羞不好意思主動去說話,于是拜托了同樣在這個班的一個朋友去傳遞自己想要送的禮物。。。
該模式就不上什么簡單實現(xiàn)了,直奔完整實現(xiàn)。
/**
* 被追求者
* Created by callmeDevil on 2019/6/29.
*/
public class SchoolGirl {
private String name;
public SchoolGirl(String name){
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
/**
* 送禮物
* Created by callmeDevil on 2019/6/29.
*/
public interface GiveGift {
/**
* 送洋娃娃
*/
void giveDolls();
/**
* 送鮮花
*/
void giveFlowers();
/**
* 送巧克力
*/
void giveChocolate();
}
/**
* 追求者
* Created by callmeDevil on 2019/6/29.
*/
public class Pursuit implements GiveGift {
SchoolGirl mm;
public Pursuit(SchoolGirl mm) {
this.mm = mm;
}
@Override
public void giveDolls() {
System.out.println(mm.getName() + " 送你洋娃娃!");
}
@Override
public void giveFlowers() {
System.out.println(mm.getName() + " 送你鮮花!");
}
@Override
public void giveChocolate() {
System.out.println(mm.getName() + " 送你巧克力!");
}
}
/**
* 代替追求者的人
* Created by callmeDevil on 2019/6/29.
*/
public class Proxy implements GiveGift {
Pursuit gg;
public Proxy(SchoolGirl mm) {
// 禮物實際上是追求者買來送的,這個人只是負責傳遞禮物
this.gg = new Pursuit(mm);
}
@Override
public void giveDolls() {
gg.giveDolls();
}
@Override
public void giveFlowers() {
gg.giveFlowers();
}
@Override
public void giveChocolate() {
gg.giveChocolate();
}
}
/**
* 代理模式測試
* Created by callmeDevil on 2019/6/29.
*/
public class Test {
public static void main(String[] args) {
SchoolGirl jiaojiao = new SchoolGirl("李嬌嬌");
Proxy proxy = new Proxy(jiaojiao);
proxy.giveDolls();
proxy.giveFlowers();
proxy.giveChocolate();
}
}
李嬌嬌 送你洋娃娃!
李嬌嬌 送你鮮花!
李嬌嬌 送你巧克力!
為其他對象提供一種代理以控制對這個對象的訪問。
參見上述栗子的代碼啦,此處不再重復。
是的,追求者與被追求者沒有結果,反倒是替代送禮物的人與被追求者認識并好上了。。。誰讓追求者不主動,不是活該是啥。。。