java中设计模式-delegate(代理)

http://yangguangfu.iteye.com/blog/815787---这个是很好的参考


关于代理的一个例子:开会--老板--秘书小明/开会--CEO--秘书小明,小明可以代替老板和CEO开会,小明就是那个代理

1.开会的职能接口(类名起的有问题):

/*
 * 抽象对象--可以开会的人
 * 
 */
public interface MiShu {
public void kaiHui();//给秘书定义一个开会的方法
}
2.老板 和CEO的形象:

/*
 * 老板开会
 * 
 */
public class TheBoos implements MiShu{

	@Override
	public void kaiHui() {
		// TODO Auto-generated method stub
		System.err.println("老板在亲自开会");
	}

}


/*
 * CEO
 */
public class TheCEO implements MiShu{

	@Override
	public void kaiHui() {
		// TODO Auto-generated method stub
		System.err.println("牛逼的CEO正在开会");
	}

}
3.代理对象,小明出厂,其实也就是秘书对象,但是例子的名字起的有问题,例子中的秘书类应该叫可以开会的人:

/*
 * 我们的小明同学就是其中一个可以开会的人
 * 
 */
public class XiaoMing implements MiShu{
private MiShu mishu;




	public XiaoMing(MiShu mishu) {
	//可以是CEO找小明代替开会也可以是老板
	this.mishu = mishu;
}
	public XiaoMing() {
		//这个人默认表示老板
		this.mishu = new TheBoos();
	}
	@Override
	public void kaiHui() {
		// TODO Auto-generated method stub
		System.err.println("小明同志在代替老板开会");
		mishu.kaiHui();
	}


}
4.会议开始了,小明同学要开始装逼的了:


public class MyClient {
public static void main(String[] args) {
	//CEO找到小明,要求小明代替开会
	TheCEO ceo=new TheCEO();
	XiaoMing xiaoming=new XiaoMing(ceo);
	xiaoming.kaiHui();
	//默认是小明代替老板开会
	xiaoming=new XiaoMing();
	xiaoming.kaiHui();
}
}
 来吧,看下输出

小明同志在代替老板开会
牛逼的CEO正在开会
小明同志在代替老板开会
老板在亲自开会

很高兴,我们的小明同学装逼成功 了@!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值