代理模式主要使用了java的多态,干活的是被代理类,代理类主要是接活,你让我干活,我交给
幕后的类去干,你满意就成,那怎么知道被代理类能不能干呢?同根就成,大家知根知底,你能
做啥,我能做啥都清楚,实现同一个接口。
接口类:KindWomen.java的代码如下:
package com.designPattern.proxy;
/**
*
* @author yangjianzhou
* 这个代理模式是以潘金莲、西门庆、王婆这个故事为背景的。
* 王婆就是潘金莲的代理人
* 王婆知道潘金莲能做哪些事,不能做哪些事,要实现这一功能,就得让潘金莲
* 和王婆两个类实现同一接口。现在就定义这个接口
*/
public interface KindWomen {
/**
* 抛媚眼
*/
public void makeEyesWithMan();
/**
* 。。。。
*/
public void happyWithMan();
}
PanJinLian.java为接口的一个实现类,代码如下:
package com.designPattern.proxy;
public class PanJinLian implements KindWomen{
@Override
public void makeEyesWithMan() {
System.out.println("潘金莲抛媚眼");
}
@Override
public void happyWithMan() {
System.out.println("潘金莲和男人。。。。");
}
}
WangPo.java是接口的另一个实现类,也是代理类,代码如下:
package com.designPattern.proxy;
public class WangPo implements KindWomen{
private KindWomen kindWomen;
/**
* 让王婆成为潘金莲的代理人
*/
public WangPo(){
this.kindWomen = new PanJinLian();
}
public WangPo(KindWomen kindWomen){
this.kindWomen = kindWomen;
}
@Override
public void makeEyesWithMan() {
this.kindWomen.makeEyesWithMan();
}
@Override
public void happyWithMan() {
this.kindWomen.happyWithMan();
}
}
XiMenQing.java的嗲吗如下:
package com.designPattern.proxy;
public class XiMenQing {
/**
* 西门庆是通过王婆和潘金莲勾搭上的
* 这里new 了一个王婆
* 并且通过王婆做了一些事
* @param args
*/
public static void main(String[] args) {
WangPo wangPo = new WangPo();
wangPo.makeEyesWithMan();
wangPo.happyWithMan();
}
}
运行结果如下:
潘金莲抛媚眼
潘金莲和男人。。。。
分享到:
相关推荐
java.proxy,代理模式源码,设计模式,apache开源项目源码commons-proxy-1.0-src 各种代理模式操作的工具类源码以及代理模式案例源码,你会从中得到意想不到的效果! apache开源组织开发的开源项目源码,其优良的代码...
设计模式C++学习之代理模式(Proxy)
1.1 什么是设计模式 2 1.2 Smalltalk MVC 中的设计模式 3 1.3 描述设计模式 4 1.4 设计模式的编目 5 1.5 组织编目 7 1.6 设计模式怎样解决设计问题 8 1.6.1 寻找合适的对象 8 1.6.2 决定对象的粒度 9 1.6.3 指定对象...
JAVA设计模式-day2,请的... 8、 代理模式(Proxy) • 9、 外观模式(Facade); 10、 桥接模式(Bridge); 11、 组合模式(Composite))、关系模式(11种),挺不错的,或许对某些专业技术人事有帮组,推荐给大家。
Java设计模式精讲-代理模式
《asp.net设计模式》涵盖了开发企业级asp.net应用程序的知名模式和最佳实践。本书用到的模式可以用于从asp.net1.0到asp.net 4.0的任何版本。不必管模式本身所用的语言,可以将模式用于任何面向对象编程语言。 ...
4.7 PROXY(代理)——对象结构型模式 4.8 结构型模式的讨论 第五章 行为模式 5.1 CHAIN OF RESPONSIBIL ITY(职责链)——对象行为型模式 5.2 COMMAND(命令)——对象行为型模式 5.3 INTERPRETER(解释器)——类...
Android设计模式之代理模式(Proxy Pattern)
第11章 代理模式(Proxy) 第12章 观察者模式(Observer) 第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式...
第11章 代理模式(Proxy) 第12章 观察者模式(Observer) 第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式...
第11章 代理模式(Proxy) 第12章 观察者模式(Observer) 第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式...
为其他对象提供一个代理以控制对这个对象的访问。
代码仅供参考学习 。
- 代理模式(Proxy) - 适配器模式(Adapter) - 装饰器模式(Decorator) - 桥接模式(Bridge) - 组合模式(Composite) - 外观模式(Facade) - 享元模式(Flyweight) - 观察者模式(Observer) - 模板方法模式...
C#面向对象设计模式纵横谈(13):Proxy 代理模式(结构型模式)
虚拟代理(Virtual Proxy):根据需要创建开销很大的对象,它可以缓存实体的附加信息,以便延迟对它的访问,例如在网站加载一个很大图片时,不能马上完成,可
NULL 博文链接:https://wy649898543.iteye.com/blog/1431997
C#面向对象设计模式纵横谈(13):Proxy 代理模式(结构型模式) (Level 300)
详解设计模式中的proxy代理模式及在Java程序中的实现共14页.pdf.zip
Java设计模式精讲-代理模式2