代理模式,爲其他對象提供一種代理以控制對這個對象的訪問。
下面我們通過追求者向mm送禮物來展現代理模式。
1、代理接口
public interface GiveGift {
public void giveDolls();
public void giveFlowers();
public void giveChocolate();
}
2、追求者public class Pursuit implements GiveGift{
private 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());
}
}
3、辣妹子public class SchoolGirl {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
4、代理類public class Proxy implements GiveGift{
private Pursuit gg;
public Proxy(SchoolGirl mm){
gg = new Pursuit(mm);
}
@Override
public void giveDolls() {
gg.giveDolls();
}
@Override
public void giveFlowers() {
gg.giveFlowers();
}
@Override
public void giveChocolate() {
gg.giveChocolate();
}
}
5、測試public class Test {
public static void main(String[] args) {
SchoolGirl schoolGirl = new SchoolGirl();
schoolGirl.setName("辣妹子");
Proxy proxy = new Proxy(schoolGirl);
proxy.giveChocolate();
proxy.giveDolls();
proxy.giveFlowers();
}
}