
为其他对象提供一种代理以控制对这个对象的访问
先上图

注:该图画的是大话设计模式中的代理追女孩的图,这里Pursuit里面维护了一个SchoolGril,这个对象是通过Proxy传递过来的
接下来上码:
GiveGift
1 2 3 4 5
|
public interface GiveGift { public void giveDolls(); public void giveFlowers(); public void giveChocolate(); }
|
Pursuit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
public class Pursuit implements GiveGift{ private SchoolGirl mm; public Pursuit(SchoolGirl mm){ this.mm = mm; } @Override public void giveDolls() { System.out.println("送洋娃娃!"); } @Override public void giveFlowers() { System.out.println("送花"); } @Override public void giveChocolate() { System.out.println("送巧克力"); } }
|
Proxy
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
public class Proxy implements GiveGift{ private 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(); } }
|
Clinet
1 2 3 4 5 6 7 8 9
|
public class Client { public static void main(String [] args){ SchoolGirl mm = new SchoolGirl(); Proxy proxy = new Proxy(mm); proxy.giveChocolate(); proxy.giveDolls(); proxy.giveFlowers(); } }
|
近期评论