您的位置:首页 > 其它

代理模式

2016-05-10 09:03 330 查看
代理模式:为其他对象提供一种代理以控制对这个对象的访问。

下面为代理模式的一个小案例:

第一步:写一个接口

public interface GiveGift {

void sendDoll();

void sendFlower();

}

第二步:

public class Pursuit implements GiveGift{

SchoolGirl mm;

public Pursuit(SchoolGirl mm) {

this.mm = mm;

}

@Override

public void sendDoll() {

System.out.println(mm.getName()+"送你洋娃娃");

}

@Override

public void sendFlower() {

// TODO Auto-generated method stub

System.out.println(mm.getName()+"送你鲜花");

}

}

第三步:

public class Proxy implements GiveGift{

Pursuit p;

SchoolGirl mm;

public Proxy(SchoolGirl mm) {

p=new Pursuit(mm);

}

@Override

public void sendDoll() {

p.sendDoll();

}

@Override

public void sendFlower() {

p.sendFlower();

}

}

第四步:

public class SchoolGirl {

private String name;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

第五步:

public class Test1 {

public static void main(String[] args) {

SchoolGirl lili = new SchoolGirl();

lili.setName("李菲");

Proxy px = new Proxy(lili);

//虽然是代理在执行送礼物,实际上是追求者在送礼物。

px.sendDoll();

px.sendFlower();

}

}

代理模式的其他应用:

1,远程代理,为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。

2,虚拟代理,根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。例如,网页中在图片出来以前现出来文字。

3,安全代理,用来控制真实对象访问时的权限。

4,智能代理,是指当调用真实的对象时,代理处理另外一些事。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: