论坛首页 入门技术论坛

java设计模式之代理模式

浏览 4423 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-12-16   最后修改:2010-12-16

这一节说说代理模式,我的代码的模拟场景是追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追到手了吧,娃哈哈!

   发表时间:2010-12-16  
接口GiveGift 我觉得改成PaoMM比较贴切
0 请登录后投票
   发表时间:2010-12-16  
proxy 的constructor有问题,应该传入被代理的gg,否则mm就追成自己的了。
1 请登录后投票
   发表时间:2010-12-17  
代理追MM么

那command模式 是不是对MM 做各种command?
0 请登录后投票
   发表时间:2010-12-17  
不知道LZ发这篇文章的目的是什么?是对代理模式蕴藏有更深的理解还是找下乐子?
0 请登录后投票
   发表时间:2010-12-17  
莫非都是看马士兵的教程的???
0 请登录后投票
   发表时间:2010-12-17  
上面说的太悲剧了啊
0 请登录后投票
   发表时间:2010-12-17  
把MM构造方法扔给代理了 这哥感觉像张床啊 MM GG都有啊 要干嘛啊。
0 请登录后投票
   发表时间:2010-12-17  
居然是马士兵讲的东西,哎
0 请登录后投票
   发表时间:2010-12-17  
zcjjane 写道
居然是马士兵讲的东西,哎

马士兵将的是这个吗,我是看《大话设计模式》这本书上的。是马士兵看的这本书还是这本书看的是马士兵啊
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics