大话设计模式之代理模式
来源:互联网 发布:java返回值是什么意思 编辑:程序博客网 时间:2024/05/29 11:20
参考—->程杰大神的《大话设计模式》—org
记一下一遍以后重复看时有新的理解,メモ
代理模式
在访问对象时引入一定的程度的间接性,因为这种间接性,可以附加多种用途。
代理模式应用-
1 远程代理 一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实。
2 虚拟代理 根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的真是对象
3 安全代理 用来控制真实对象访问时的权限 一般用于对象应该有不同的访问权限
4 智能指引 指的是当调用真是对象时,代理处理另外一些事
実は 上記の場合はよくわからないが一応メモしておく
理解できない。。。
代码对应的UML图
一个送礼物的接口
public interface GiveGift { void GiveDog(); void GiveCat(); void GivePig();}
实体类(代理要去替代的实体类)
/** * 此类是代理要真实访问的实体类 * * */public class Pursuit implements GiveGift { private SchoolGril sg; public Pursuit(SchoolGril sg) { super(); this.sg = sg; } @Override public void GiveDog() { // TODO Auto-generated method stub System.out.println(sg.getName()+"----->GiveDog"); } @Override public void GiveCat() { // TODO Auto-generated method stub System.out.println(sg.getName()+"----->GiveCat"); } @Override public void GivePig() { // TODO Auto-generated method stub System.out.println(sg.getName()+"----->GivePig"); }}
接受礼物的人
public class SchoolGril { private String name ; public String getName() { return name; } public void setName(String name) { this.name = name; }}
代理类
public class Proxy implements GiveGift {/** * 在代理类中引用一个可以访问的实体,并提供一个与 * Subject的接口相同的接口这样代理便可以替代实体 * */ Pursuit ps; public Proxy(SchoolGril sg) { super(); ps = new Pursuit(sg); } @Override public void GiveDog() { // TODO Auto-generated method stub ps.GiveDog(); } @Override public void GiveCat() { // TODO Auto-generated method stub ps.GiveCat(); } @Override public void GivePig() { // TODO Auto-generated method stub ps.GivePig(); }}
测试类
public class TestProxy { public static void main(String[] args) { // TODO Auto-generated method stub SchoolGril sGril=new SchoolGril(); sGril.setName("tom"); /** * 直接通过代理给这个女生礼物 * */ Proxy proxy = new Proxy(sGril); proxy.GiveDog(); proxy.GiveCat(); proxy.GivePig(); }}
输出结果
阅读全文
0 0
- 大话设计之代理模式
- 大话设计模式之代理(Proxy)模式
- 大话设计模式之代理模式
- 大话设计模式之代理模式
- 大话设计模式之代理模式
- 大话设计模式之代理模式
- 大话设计模式之代理模式
- 大话设计模式之四 代理模式
- 大话设计模式之代理模式
- 大话设计模式之代理模式
- 大话设计模式之代理模式
- 四、大话设计模式 之 代理模式
- java设计模式大话之代理模式
- 大话设计模式之代理模式
- 大话设计模式之代理模式
- 《大话设计模式》之代理模式
- 大话设计模式读书笔记之动态代理
- 大话设计模式 代理模式
- 用注解实现springMVC
- 宝山区市场监管局商标服务增质
- 安装nginx
- jQuery Validate
- ACM算法列表
- 大话设计模式之代理模式
- 关于使用开源库
- 转的 侵立删 java内存模型
- 大话微信支付踩的坑
- python+selenium+eclipse问题排查(一)
- HTML5-ionic框架
- JavaWeb-会话的持久化:HttpSessionActivationListener
- html记录之标签的分类和使用方法
- Redis、Memcache和MongoDB的区别