java中设计模式-delegate(代理)
2016-12-27 14:30
330 查看
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("老板在亲自开会");
}
}
/*
* 我们的小明同学就是其中一个可以开会的人
*
*/
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正在开会
小明同志在代替老板开会
老板在亲自开会
很高兴,我们的小明同学装逼成功 了@!
关于代理的一个例子:开会--老板--秘书小明/开会--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正在开会
小明同志在代替老板开会
老板在亲自开会
很高兴,我们的小明同学装逼成功 了@!
相关文章推荐
- 基于Java的代理设计模式
- 基于Java的代理设计模式
- Java设计模式:单态模式,工厂模式,代理模式,观察者模式示例
- java 设计模式 学习笔记(6) 代理模式
- JAVA 设计模式 代理Proxy模式 一
- 基于Java的代理设计模式
- 深入浅出基于Java的代理设计模式
- JAVA设计模式之代理模式
- [转]转个经典的帖子:说故事学设计模式之-Java动态代理模式
- java设计模式-代理模式
- Java设计模式:Proxy(代理)
- java GOF设计模式--------------代理模式(Proxy Pattern)
- 深入浅出基于Java的代理设计模式
- java设计模式_代理模式_动态代理(带例子)
- Java设计模式:Proxy(代理)
- 设计模式:用Java动态代理实现AOP
- Java设计模式-----Proxy模式(静态代理)
- Java设计模式-----Proxy模式(动态代理)
- Java设计模式之虚拟代理模式
- JAVA设计模式之代理模式(转)