代理模式
发布日期:2021-09-25 11:48:13 浏览次数:2 分类:技术文章

本文共 1635 字,大约阅读时间需要 5 分钟。

代理模式:为其他对象提供一种代理以控制对这个对象的访问。

例子:《大话设计模式》追女朋友例子

被追求者

package Proxy;public class SchoolGirl {	public  String name;	public void setName(String name){		this.name=name;	}	public String getName(){		return name;	}}
package Proxy;//代理接口interface GiveGift {	void GiveDolls();	void GiveFlowers();	void GiveChocolate();}
package Proxy;//追求者类,让追求者实现送礼物接口public class Pursuit implements GiveGift{	SchoolGirl mm;	public Pursuit(SchoolGirl mm){		this.mm=mm;	}	@Override	public void GiveDolls() {		// TODO Auto-generated method stub		System.out.println(mm.name+" 送你洋娃娃");	}	@Override	public void GiveFlowers() {		// TODO Auto-generated method stub		System.out.println(mm.name+" 送你鲜花");	}	@Override	public void GiveChocolate() {		// TODO Auto-generated method stub		System.out.println(mm.name+" 送你巧克力");	}	}
package Proxy;//代理类,让代理也去实现送礼物接口public class Proxy implements GiveGift{	Pursuit gg;	public Proxy(SchoolGirl mm){		gg=new Pursuit(mm);	}	@Override	public void GiveDolls() {		// TODO Auto-generated method stub		gg.GiveDolls();	}	@Override	public void GiveFlowers() {		// TODO Auto-generated method stub		gg.GiveFlowers();	}	@Override	public void GiveChocolate() {		// TODO Auto-generated method stub		gg.GiveChocolate();	}}
package Proxy;//测试public class Test {	public static void main(String[] args) {		// TODO Auto-generated method stub		SchoolGirl sh=new SchoolGirl();		sh.setName("Autumn");		Proxy daili=new Proxy(sh);				daili.GiveDolls();		daili.GiveFlowers();		daili.GiveChocolate();	}}

代理模式应用场合:

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

2.虚拟代理,是根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的真实对象

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

4.智能代理,是指当调用真实的对象时,代理处理另外一些事

转载地址:https://blog.csdn.net/Autumn03/article/details/80757499 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:论文-科研
下一篇:装饰者模式

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月02日 05时04分28秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章