简单的以一个追女朋友的方式来体现代理模式 假如追女生的时候,你不认识那个女生,就需要有一个中间代理人来帮助你做一些事,我们就利用一个代理类来实现interface GiveGift { void
假如追女生的时候,你不认识那个女生,就需要有一个中间代理人来帮助你做一些事,我们就利用一个代理类来实现
interface GiveGift {
void GiveDolls(); //送洋娃娃
void GiveFlowers(); //送鲜花
void GiveChocolate(); //送巧克力
}
//被追求者类
public SchoolGirl {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name=name;
}
}
//追求者类如下
public Pursuit implements GiveGift {
SchoolGirl mm;
public Pursuit( SchoolGirl mm) {
this.mm=mm;
}
public void GiveDolls() {
System.out.println(mm.name+"送你洋娃娃");
}
public void GiveFlowers() {
System.out.println(mm.name+"送你鲜花");
}
public void GiveChocolate() {
System.out.println(mm.name+"送你巧克力");
}
}
//代理类如下,代理类也要继承接口
public Proxy implements GiveGift {
Pursuit gg;
public Proxy(Pursuit gg) {
gg=new Pursuit();
}
public void GiveDolls() {
gg.GiveDolls();
}
public void GiveFlowers() {
gg.GiveFlowers();
}
public void GiveChocolate() {
gg.GiveChocolate();
}
}
//代理模式一般有四种应用,第一是远程应用,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象
//存在于不同地址空间的事实,第二是虚拟代理,是根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的对象
//第三种是安全代理,控制真实访问时的权限,第四种是智能指引,是指当调用真实对象时,代理处理另外一些事
