代理模式
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,智能代理,是指当调用真实的对象时,代理处理另外一些事。
下面为代理模式的一个小案例:
第一步:写一个接口
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,智能代理,是指当调用真实的对象时,代理处理另外一些事。
相关文章推荐
- 单例模式
- java中的面向对象和类之间的关系
- C++第五次作业
- ./ffmpeg: error while loading shared libraries: libiconv.so.2
- grep
- poj2739 Sum of Consecutive Prime Numbers (素数打表)
- TCP滑动窗口机制的简洁模型
- Linux平台卸载MySQL总结
- windows编程小记
- AYITACM2016省赛第四周c- Fence Repair(优先队列,最大堆)
- 从零开始学Hadoop----浅析HDFS(三)
- python字符串的不变性
- RSA双向加密
- request.querystring和request.form、session的区别
- 使用Texture2D创建Cubemap
- Java中的方法
- php简单统计在线人数的方法
- AIX主机FTP到LINUX服务器其中的磕碰记录
- iOS面试题集锦
- AIX主机FTP到LINUX服务器其中的磕碰记录