`

大话设计模式七:代理模式(为别人做嫁衣)

 
阅读更多

代理持有被代理对象的引用,代理对象调用持有被代理对象的引用来调用被代理对象的方法,其中,代理对象和被代理对象要实现共同接口。

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

//代理接口
public interface GiveGift
{
	void giveDolls();

	void giveFlowers();

	void giveChocolate();
}
//追求者类
public class 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 class Proxy implements GiveGift
{
	Pursuit	gg;

	public Proxy(SchoolGirl mm)
	{
		gg = new Pursuit(mm);
	}

	public void giveChocolate()
	{
		gg.giveChocolate();
	}

	public void giveDolls()
	{
		gg.giveDolls();
	}

	public void giveFlowers()
	{
		gg.giveFlowers();
	}
}
//客户端代码
public class Main
{
	public static void main(String[] args)
	{
		SchoolGirl jiaojiao = new SchoolGirl();
		jiaojiao.setName("李娇娇");

		Proxy daili = new Proxy(jiaojiao);
		daili.giveDolls();
		daili.giveFlowers();
		daili.giveChocolate();
	}
}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics