代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问。
GiveGift.java类
package proxy; public abstract class GiveGift { abstract void giveDolls(); abstract void giveFlowers(); abstract void giveChocolate(); }
Pursuit.java类
package proxy; public class Pursuit extends GiveGift { SchoolGirl girl; public Pursuit(SchoolGirl girl) { this.girl = girl; } @Override void giveDolls() { System.out.println(girl.getName()+",送你洋娃娃"); } @Override void giveFlowers() { System.out.println(girl.getName()+",送你鲜花"); } @Override void giveChocolate() { System.out.println(girl.getName()+",送你巧克力"); } }
Proxy.java类
package proxy; public class Proxy extends GiveGift { Pursuit boy; public Proxy(SchoolGirl girl) { boy = new Pursuit(girl); } @Override void giveDolls() { boy.giveDolls(); } @Override void giveFlowers() { boy.giveFlowers(); } @Override void giveChocolate() { boy.giveChocolate(); } }
SchoolGirl.java类
package proxy; public class SchoolGirl { String name; public String getName() { return name; } public SchoolGirl(String name) { this.name = name; } }
Business.java类
package proxy; public class Business { public static void main(String[] args) { SchoolGirl girl = new SchoolGirl("徐娇娇"); Proxy pp = new Proxy(girl); pp.giveDolls(); pp.giveFlowers(); pp.giveChocolate(); } }