代理模式--介绍、应用及代码
2014-02-11 18:16
190 查看
所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之前起到中介的作用。
代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。
代理模式四角色:抽象角色、真实角色、黄牛、你
实例:买不到火车票,找黄牛去火车站给你买票。
上面这个例子,你就是“执行角色”,黄牛就是“代理角色”,火车站是“真实角色”,买票称为“抽象角色”!
买票是种行为,谁买票不知道,所以是抽象角色;
只有在火车站才能买票,而且不管谁买票都得在火车站买,它真实存在的;
本来是你自己去买票的,但是你找了黄牛,所以黄牛是你的代理对象;而且你只需要买票,但是黄牛除了买票还有很多行为,黄牛将你需要买票的行为进行了封装;
真正要买票的是你自己,所以这个动作得你发起。
如果这个例子还看不懂,建议加强JAVA基本功学习,尤其是类、接口、对象之间的关系。
代码如下:
代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。
代理模式四角色:抽象角色、真实角色、黄牛、你
实例:买不到火车票,找黄牛去火车站给你买票。
上面这个例子,你就是“执行角色”,黄牛就是“代理角色”,火车站是“真实角色”,买票称为“抽象角色”!
买票是种行为,谁买票不知道,所以是抽象角色;
只有在火车站才能买票,而且不管谁买票都得在火车站买,它真实存在的;
本来是你自己去买票的,但是你找了黄牛,所以黄牛是你的代理对象;而且你只需要买票,但是黄牛除了买票还有很多行为,黄牛将你需要买票的行为进行了封装;
真正要买票的是你自己,所以这个动作得你发起。
如果这个例子还看不懂,建议加强JAVA基本功学习,尤其是类、接口、对象之间的关系。
代码如下:
//抽象角色--买票 public interface Subject { public abstract void maipiao(); }
//代理角色--黄牛 public class RealSubject implements Subject { @Override public void maipiao() { // TODO Auto-generated method stub System.out.print(this.getClass().getName()+":"); System.out.println("买票"); } }
//真实角色--火车站 public class ProxySubject implements Subject { private Subject subject; RealSubject(Subject subject){ this.subject = subject; } @Override public void maipiao(){ inStation(); this.subject.maipiao(); outStation(); } private void inStation(){ // Other codes System.out.print(this.getClass().getName()+":"); System.out.println("黄牛收你钱进火车站买票"); } private void outStation(){ // Other codes System.out.print(this.getClass().getName()+":"); System.out.println("黄牛买到票出火车站把票给你"); } }
//执行角色--你 public class Hello { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Subject sub=new RealSubject(new ProxySubject()); sub.maipiao(); } }
相关文章推荐
- 简单工厂模式--介绍、应用及代码
- 装饰器模式--介绍、应用及代码
- Java代理模式及应用(一)代理模式介绍
- 代理模式【介绍、静态代理、动态代理、入门、应用】
- 单例模式--介绍、应用及代码
- 模板方法模式--介绍、应用及代码
- 建造者模式--介绍、应用及代码
- 代理模式【介绍、静态代理、动态代理、入门、应用】
- 【转载】代理模式应用实例
- Web开发模式【Mode I 和Mode II的介绍、应用案例】
- Spring之代理设计模式原理与代码展示
- 探讨代理模式与Java反射机制的应用
- 使用反射机制调用属性和私有成员与代理模式的介绍
- 关于.NET动态代理的介绍和应用简介
- 代理模式代码实现
- RPC中nio和代理模式的应用
- Hibernate 延迟加载剖析与代理模式应用
- 模型的应用 && Xib &&代理模式的应用【应用管理】
- Proxy代理模式之应用
- android应用开发设计模式之代理模式