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

代理模式(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 RealSubject extends Subject {

    @Override
    public void Request() {
        System.out.println("thr real Request");
    }

}
package proxy;

/*
 * 保存一个引用使得代理可以访问实体,并提供一个与Subject的接口相同的接口
 * 这样代理可以用来替代实体
 */
public class Proxy extends Subject {

    RealSubject realSubject;

    @Override
    public void Request() {
        if (realSubject == null) {
            realSubject = new RealSubject();
        }
        realSubject.Request();
    }

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

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

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

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

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

时间: 2024-10-20 14:01:00

大话设计模式笔记 代理模式的相关文章

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

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

大话设计模式_代理模式(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通过代理模式生成对象等. 代理模式的书面定义:为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 在<<大话设计模式>>一书中以一个有男朋友的女孩让"小菜"帮忙修电脑的故事展开的,其实说白了代理就是帮别人干活的,一般老板不出面,

设计模式 笔记 代理模式 Proxy

//---------------------------15/04/21---------------------------- //Proxy 代理模式-----对象结构型模式 /* 1:意图: 为其他对象提供一种代理以控制对这个对象的访问. 2:别名: Surrogate 3:动机: 4:适用性: 1>远程代理: 为一个对象在不同的地址空间提供局部代表. 2>虚代理: 根据需要创建开销很大的对象. 3>保护代理: 控制对原始对象的访问.保护代理用于对象应该有不同的访问权限的时候.

大话设计模式-代理模式(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

《大话设计模式》——代理模式

代理模式应用场景:1.远程代理:为一个对象在不同的地址空间提供局部代表.可隐藏对象存在不同地址空间的事实.例如ws在.net中的应用. 2.虚拟代理:通过代理来存放实例化需要很长时间的真实对象.例如让一个很大的html页面立即展开,可以通过代理设置图片位置为空,先占位打开页面,然后再慢慢加载图片后填充. 3.安全代理:用来控制真实对象访问时的权限.例如检查真实对象是否有访问权限. 4.智能指引:指调用真实的对象时,代理处理另外一些事.例如计算真实对象的引用次数. 代理模式角色: 1.subjec

学习大话设计模式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 Administrato

大话设计模式之代理模式

引言:让我们重温经典,致敬经典 代理模式:为其他对象提供一种代理以控制对这个对象的访问 UML: 解读:代理模式要求代理者和被代理者实现同一个接口或者继承自同一个父类.并且代理者要持有真实对象的引用. 所以代理者和被代理者之间的关系应该是关联关系. 代码: 1 package com.dzf.designtest; 2 3 /** 4 * <desc> 5 * 代理模式:为其他对象提供一种代理以控制对这个对象的访问 6 * 7 * </desc> 8 * @author dingz

大话设计模式笔记 原型模式

原型模式(Prototype),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节. 基本类型与引用类型的区别于关系在efficient java. http://www.cnblogs.com/linkarl/p/4785329.html 浅复制:对象的引用仍然指向原来的对象 深复制:把引用对象的变量指向复制过的新对象 我认为一般深复制比较常用. package prototype; public