结构型模式7之1-Proxy代理模式例子理解
来源:互联网 发布:二维码解码器软件 编辑:程序博客网 时间:2024/05/23 01:57
所谓代理,就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
抽象对象角色:租房
public abstract class AbstractObject { //抽象操作:操作租房 public abstract void operation();}
目标对象角色:租房的人
public class RealObject extends AbstractObject { @Override public void operation() { //租房要做的一些操作 System.out.println("一些操作"); }}
代理对象角色:帮忙租房的中介
public class ProxyObject extends AbstractObject{ RealObject realObject = new RealObject(); @Override public void operation() { //调用目标对象之前可以做相关操作 System.out.println("before"); realObject.operation(); //调用目标对象之后可以做相关操作 System.out.println("after"); }}
客户端
public class Client { public static void main(String[] args) { // 代理已经把房租到了,不要个人亲自出马 AbstractObject obj = new ProxyObject(); obj.operation(); }}
===================
例子二:
interface Network{public void browse();}class Real implements Network{//真实的上网操作public void browse(){System.out.printlf("上网ing");}}class Proxy implements Network{Network network;public Proxy(Network network){this.network=network;}public void check(){System.out.printlf("检查用户是否合法");}public void checkTime(){System.out.printlf("检查时间是否到期");}public void browseOnline(){check();checkTime();network.browse();//调用真实的方法}}
test
public class ProxyTest{public static void main(String args[]){Network network=new Proxy(new Real());network.browse();}}
结果
检查用户是否合法检查时间是否到期上网ing
0 0
- 结构型模式7之1-Proxy代理模式例子理解
- 结构型模式之代理PROXY
- 结构模式之Proxy(代理)
- 结构模式之Proxy(代理)
- 结构模式之Proxy(代理)
- 十、结构模式之代理(Proxy)模式
- Proxy代理(结构型模式)
- 【结构型模式】proxy(代理)
- 结构型模式-代理(proxy)
- 结构型-代理模式(proxy)
- 设计模式之代理(Proxy)----对象结构型模式
- 结构型模式之代理模式(Proxy Pattern)C++实现
- 结构型模式之代理模式(Proxy)
- 结构型模式之代理模式(Proxy)
- 设计模式(结构型)之代理模式(Proxy Pattern)
- 【设计模式】结构型模式之Proxy代理
- 结构型模式之代理模式(Proxy)
- 代理模式(Proxy)-对象结构型模式
- struts2中Action单例和多例
- OpenGL入门——GLFW
- 启动tomcat,解决了Eclipse控制台乱码问题后,在Eclipse调试时,依然有中文乱码问题(解决)
- 将指定文件夹下文件及子文件夹下的文件复制到同一级目录
- FPGA 按键控制数码管
- 结构型模式7之1-Proxy代理模式例子理解
- Prim Dijkstra 区别
- centos 7 dns 依赖
- Android小问题:String转换Json,以及org.json.JSONObject与org.json.JSONArray相互添加
- JAVA正则表达式:Pattern类和Mathcer类详解
- hdu 5547 Sudoku【dfs】
- linux之待机流程
- build and install everything into local directory
- Docker背后的容器管理——Libcontainer深度解析