学习大话设计模式07_代理模式

代理模式:为其他对象提供一种代理以控制对这个对象的访问。

 1 /**
 2  * 定义了RealSubject和Proxy的共用接口,这样就在任何使用RealSubject的地方都可以使用Proxy.
 3  * @author Monica
 4  *
 5  */
 6 abstract class Subject {
 7     public abstract void Request();
 8 }
 9
10
11 /**
12  * 定义Proxy所代表的真实实体
13  * @author Administrator
14  *
15  */
16 public class RealSubject extends Subject {
17
18     @Override
19     public void Request() {
20         System.out.println("真实的请求");
21     }
22
23 }
24
25
26 /**
27  * 保存一个引用使用代理可以访问实体,并提供一个与Subject的接口相同的接口,
28  * 这样代理就可以用来替代实体。
29  * @author Administrator
30  *
31  */
32 public class Proxy extends Subject{
33     private RealSubject realSubject;
34
35     @Override
36     public void Request() {
37         if(realSubject == null) {
38             realSubject = new RealSubject();
39         }
40         realSubject.Request();
41     }
42
43 }

调用:

public static void main(String[] args) {
    Proxy proxy = new Proxy();
    proxy.Request();
}

代理模式应用:

1 -- 远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。

2 -- 虚拟代理,是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。

3 -- 安全代理,用来控制真实对象访问时的权限。

4 -- 智能指引,是指当调用真实的对象时,代理处理另外一些事。

时间: 2025-01-16 02:18:37

学习大话设计模式07_代理模式的相关文章

【大话设计模式】——代理模式

对于面向对象的程序设计语言而言,继承和多态是两个最基本的概念.Hibernate 的继承映射可以理解持久化类之间的继承关系.例如:人和学生之间的关系.学生继承了人,可以认为学生是一个特殊的人,如果对人进行查询,学生的实例也将被得到. Hibernate支持三种继承映射策略: 使用 subclass 进行映射:将域模型中的每一个实体对象映射到一个独立的表中,也就是说不用在关系数据模型中考虑域模型中的继承关系和多态. 使用 joined-subclass 进行映射: 对于继承关系中的子类使用同一个表

学习大话设计模式02_工厂模式 进阶至 策略模式

1 /** 2 * 现金收费抽象类 3 * @author Monica 4 * 5 */ 6 public abstract class CashSuper { 7 /** 8 * 现金收取超类的抽象方法 9 * @param money 收取现金,参数为原价 10 * @return 返回当前价 11 */ 12 public abstract double acceptCash(double money); 13 } 14 15 /** 16 * 正常收费子类 17 * @author M

大话设计模式_代理模式(Java代码)

代理模式:为其他对象提供一种代理以控制对这个对象的访问 简单描述:1个父类A(或者接口),1个具体执行动作的子类,1个代理类,代理类持有具体子类的引用,在方法中调用具体子类的对象方法.客户端只与代理类交互 大话设计模式中的截图: 例子代码: Subject类: 1 package com.longsheng.proxy; 2 3 public interface IGiveGifts { 4 5 public void giveDolls(); 6 7 public void giveFlowe

<四>读<<大话设计模式>>之代理模式

代理模式我想大家即便不熟悉也都听过吧,从字面意思上看就是替别人干活的,比如代理商.在项目的实际应用中也有很多地方用到,比如spring通过代理模式生成对象等. 代理模式的书面定义:为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 在<<大话设计模式>>一书中以一个有男朋友的女孩让"小菜"帮忙修电脑的故事展开的,其实说白了代理就是帮别人干活的,一般老板不出面,

设计模式07_代理模式

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/51550035 1.定义 代理模式为另一个对象提供替身或占位符以控制对这个对象的访问.使用代理模式创建代表对象,让代表对象控制某对象的访问,被代理的对象可以是远程的对象.创建开销大的对象或需要安全控制的对象.(摘自Head First 中文版第460页) 2.说明 代理模式中,代理类(proxy class)对它的客户隐藏了对象的具体信息.因此,在使用代理模

大话设计模式笔记 代理模式

代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问. package proxy; /* * Subject Class,the common interface of RealSubject and Proxy, */ public abstract class Subject { public abstract void Request(); } package proxy; //represent the real entity public class RealSubj

大话设计模式-代理模式(7)

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ProxyFactory { interface IGiveGift { void GiveDolls(); void GiveFlowers(); void GvieChoolate(); } } using System; using System.Collections.Generic; using

Java学习笔记——设计模式之四.代理模式

To be, or not to be: that is the question. --<哈姆雷特> 代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问. 上代码: 1 package cn.no4.proxy; 2 3 public interface IMakeMoney { 4 5 void makeMoney(); 6 } 1 package cn.no4.proxy; 2 3 public class Proxy implements IMakeMoney { 4

java学习笔记-设计模式9(代理模式)

意图 为其他对象提供一种代理以控制对这个对象的访问. public interface Sourceable { public void method(); } public class Source implements Sourceable{ @Override public void method() { System.out.println("this is original method!"); } } public class Proxy implements Source