`
123629996
  • 浏览: 291131 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

java设计模式之代理模式

阅读更多

这一节说说代理模式,我的代码的模拟场景是追MM,感兴趣吧,块看看吧。

想要追到MM,送东西啊,这是必须的,所有人都得这样吧,哈哈

package com.yjck.proxy;
/**
 * 追MM的方式:送东西
 */
public interface GiveGift {
	public void giveDolls();
	public void giveFlowers();
	public void giveChocolate();
}

 既然追的方式都确定了,那追求者赶紧上啊,还等什么呢?

package com.yjck.proxy;
/**
 * 真正的追求者
 */
public class Pursuit implements GiveGift {
	/**
	 * 追求者要干啥,当然要追MM了,所以就有MM
	 */
	MM mm = null;
	public Pursuit(MM mm){
		this.mm = mm;
	}

	public void giveChocolate() {
		System.out.println(this.mm.getName()+"送你巧克力");

	}

	public void giveDolls() {
		System.out.println(this.mm.getName()+"送你洋娃娃");

	}

	public void giveFlowers() {
		System.out.println(this.mm.getName()+"送你花");

	}

}

 

追求者都隆重登场了,我们的MM也该上场了

package com.yjck.proxy;

public class MM {
	/**
	 * MM的名字
	 */
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

 

追求的方式已经确定,MM也出现了,可是追女孩的男孩比较腼腆,不好意啊,这可怎么办呢?急坏了追求者了,我们给他想想办法吧,哎,有了,让他找个哥们帮他去追吧,让他的哥们给MM说这东西是XXX送的,他想和你交个朋友。OK,这主意不错,马上实施。

package com.yjck.proxy;
/**
 * 代理者,中介,帮助真正的追求者实施追MM的活动
 */
public class Proxy implements GiveGift {
	/**
	 * 代理者干啥,当然是帮真正的追求者的实施了
	 */
	Pursuit gg;
	/**
	 * 代理者活动当然离不开真正追求者的目标了
	 */
	public Proxy(MM mm){
		gg = new Pursuit(mm);
	}
	public void giveChocolate() {
		gg.giveChocolate();

	}

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

	}

	public void giveFlowers() {
		gg.giveFlowers();

	}

}

 

万事俱备,start

package com.yjck.proxy;

public class Run {

	/**
	 * 代理模式客户端
	 */
	public static void main(String[] args) {
		MM mm = new MM();
		mm.setName("娇娇");
		Proxy daili = new Proxy(mm);
		daili.giveChocolate();
		daili.giveDolls();
		daili.giveFlowers();
	}

}

 

好了,经过曲线的方式,MM追到手了吧,娃哈哈!

分享到:
评论
11 楼 object_object 2010-12-17  
看懂了,就是这个男的找了个另外一个男的去追mm,所以做代理这个男的也针对是那女的...
10 楼 wjjxf 2010-12-17  
wumingshi 写道
proxy 的constructor有问题,应该传入被代理的gg,否则mm就追成自己的了。

9 楼 123629996 2010-12-17  
zcjjane 写道
居然是马士兵讲的东西,哎

马士兵将的是这个吗,我是看《大话设计模式》这本书上的。是马士兵看的这本书还是这本书看的是马士兵啊
8 楼 zcjjane 2010-12-17  
居然是马士兵讲的东西,哎
7 楼 sunofsummer 2010-12-17  
把MM构造方法扔给代理了 这哥感觉像张床啊 MM GG都有啊 要干嘛啊。
6 楼 j2eemail 2010-12-17  
上面说的太悲剧了啊
5 楼 alyouge 2010-12-17  
莫非都是看马士兵的教程的???
4 楼 gwpking8419 2010-12-17  
不知道LZ发这篇文章的目的是什么?是对代理模式蕴藏有更深的理解还是找下乐子?
3 楼 aabcc 2010-12-17  
代理追MM么

那command模式 是不是对MM 做各种command?
2 楼 wumingshi 2010-12-16  
proxy 的constructor有问题,应该传入被代理的gg,否则mm就追成自己的了。
1 楼 cectsky 2010-12-16  
接口GiveGift 我觉得改成PaoMM比较贴切

相关推荐

Global site tag (gtag.js) - Google Analytics