本文实例讲述了Java设计模式之静态代理模式。分享给大家供大家参考,具体如下:
代理模式,可以通过代理可以在原来的基础上附加一些其他的操作。静态代理模式相对比较简单无需再程序运行时动态的进行代理。
静态代理模式的角色:
① 抽象角色:真实对象和代理对象的共同接口。其中声明真实对象和代理对象需要做的事。
② 真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。
③ 代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。
下面提供一个简单的静待代理的示例代码:
1. 抽象角色:真实对象和代理对象的共同接口。其中声明真实对象和代理对象需要做的事。
package com.tydic.proxy; /** * 真实角色和代理角色的共同接口 * @author Administrator * */ public abstract class Subject { //真实对象和代理对象需要做的事 public abstract void request(); }
2. 真实角色:需要实现抽象角色,是被代理的对象。
package com.tydic.proxy; /** * 真实角色 * @author Administrator * */ public class RealSubject extends Subject { @Override public void request() { System.out.println("from real subject!"); } }
3. 代理角色:实现抽象角色,并持有一个真实角色的引用。
package com.tydic.proxy; /** * 代理角色 * @author Administrator * */ public class ProxySubject extends Subject { private RealSubject realSubject;//代理角色内部引用了真实角色 @Override public void request() { this.preRequest();//在真实对象操作之前所附加的操作 if(null == realSubject){ realSubject = new RealSubject(); } realSubject.request();//真实角色完成的事情 this.postRequest();//在真实对象操作之后附加的操作 } private void preRequest(){ System.out.println("pre request!"); } private void postRequest(){ System.out.println("post request!"); } }
4. 编写客户端代码
package com.tydic.proxy; public class Client { public static void main(String[] args) { Subject subject = new ProxySubject(); subject.request(); } }
更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
本文向大家介绍Java设计模式之动态代理模式实例分析,包括了Java设计模式之动态代理模式实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java设计模式之动态代理模式。分享给大家供大家参考,具体如下: 前面介绍了静态代理模式,动态代理比静态代理模式更加强大。它能在程序运行时动态的生成代理对象。所谓动态代理类是在运行时生成的class,在生成它时,你必须提供一组interface给
本文向大家介绍java设计模式-代理模式(实例讲解),包括了java设计模式-代理模式(实例讲解)的使用技巧和注意事项,需要的朋友参考一下 代理模式是java最常见的设计模式之一。spring的aop就是使用了代理模式。 一般而言,代理模式分为静态代理和动态代理两种。 作为结构类的设计模式,作用在于不修改类内部代码的情况下,对类进行拓展,是对继承机制的一种补充。 eg :下面就用户登录这个例子实现
介绍 代理,顾名思义就是帮助别人做事,GoF对代理模式的定义如下: 代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。 代理模式使得代理对象控制具体对象的引用。代理几乎可以是任何对象:文件,资源,内存中的对象,或者是一些难以复制的东西。 正文 我们来举一个简单的例子,假如dudu要送酸奶小妹玫瑰花,却不知道她的联系方式或者不好意思,想委托大叔去送这些玫瑰,那大叔就是个代理(其实
本文向大家介绍Python设计模式之代理模式实例详解,包括了Python设计模式之代理模式实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python设计模式之代理模式。分享给大家供大家参考,具体如下: 代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问 运行结果: jiaojiao 送你洋娃娃 jiaojiao 送你花 jiaojiao 送你巧克
本文向大家介绍C++设计模式之代理模式,包括了C++设计模式之代理模式的使用技巧和注意事项,需要的朋友参考一下 前言 青春总是那样,逝去了才开始回味;大学生活也是在不经意间就溜走了,现在上班的时候,偶尔还会怀念大学时,大家在一起玩游戏的时光。大学喜欢玩游戏,但是可悲的校园网,速度能把人逼疯了;还好,后来搞了一个游戏代理,总算能勉勉强强的玩了两年。时至今日,敲起键盘写设计模式的时候,又想起了那些美好
本文向大家介绍java 设计模式之单例模式,包括了java 设计模式之单例模式的使用技巧和注意事项,需要的朋友参考一下 java 设计模式之单例模式 前言: 在软件开发过程中常会有一些对象我们只需要一个,如:线程池(threadpool)、缓存(cache)、对话框、偏好设置等。这些对象如果制造出多个实例的话可能会导致一些不必要的麻烦,如:程序行为异常、资源使用过量等。这时单例模式就可以确保