`
阅读更多

[关键字]:java,design pattern,设计模式,《Java与模式》学习,Proxy Pattern,代理模式
[环境]:StarUML5.0 + JDK6
[作者]:Winty (wintys@gmail.com) http://www.blogjava.net/wintys/
[正文]:



 

 

package pattern.proxy;
/**
 * 代理模式:Proxy Pattern
 * @version 2009-6-27
 * @author Winty(wintys@gmail.com)
 */
public class ProxyTest{
    public static void main(String[] args){
        Subject subject;
        subject = new ProxySubject();
        subject.request();
    }
}


/**
 * 抽象主题角色
 */
abstract class Subject{
    public abstract void request();
}


/**
 * 真实主题角色
 */
class RealSubject extends Subject{
    @Override
    public void request(){
        System.out.println("do request.");
    }
}


/**
 * 代理主题角色
 */
class ProxySubject extends Subject{
    private RealSubject realSubject;
    
    private void preRequest(){
        System.out.println("do preRequest");
    }

    public void request(){
        preRequest();

        if(realSubject == null){
            realSubject = new RealSubject();
        }
        realSubject.request();

        postRequest();
    }

    private void postRequest(){
        System.out.println("do postRequest");
    }
}

 
运行结果:
do preRequest
do request.
do postRequest

  • 大小: 29.2 KB
分享到:
评论

相关推荐

    设计模式-代理模式

    代理模式是一种常用的设计模式,它在软件开发中扮演着重要的角色,特别是在iOS平台的应用程序设计中。代理模式的核心思想是为一个对象提供一个替身或代理,以控制对这个对象的访问。这种模式允许我们通过代理来间接...

    设计模式之代理模式Proxy

    代理模式是设计模式中的一种结构型模式,它在对象交互中起到了中介的作用,允许通过代理对象来控制对原对象的访问。代理模式的核心思想是为一个对象提供一个替身,以便增加新的功能或者控制对原对象的访问。这种模式...

    Android设计模式之代理模式(Proxy Pattern)

    代理模式的核心思想是创建一个代理类,该类作为原对象的代理,它拥有与原对象相同的方法接口,但在调用这些方法时,代理类可以执行一些额外的操作。这些额外的操作可以包括但不限于验证、日志记录、事务管理、缓存等...

    Java设计模式-代理模式例子

    代理模式的核心思想是为一个对象提供一个替身,这个替身即代理对象,代理对象控制对原对象的访问。在Java中,代理模式主要有静态代理和动态代理两种实现方式。 1. 静态代理:在编译时就已经确定了代理类与目标类的...

    JAVA设计模式(代理模式)

    代理模式的核心思想是为一个对象提供一个替身,这个替身即代理对象,代理对象可以控制对原对象的访问。在实际应用中,代理模式常用于增加功能、安全控制、性能优化等方面。 代理模式主要有以下几种类型: 1. **...

    设计模式--代理模式

    代理模式是一种常用的设计模式,它在软件开发中扮演着重要角色,允许我们通过一个代理类来控制对原对象的访问。在《设计模式:可复用面向对象软件的基础》(通常称为GoF设计模式)中,代理模式被定义为“为其他对象...

    代理模式实例

    代理模式是一种设计模式,它是结构型模式的一种,主要用于在对象之间提供一个代理以控制对原对象的访问。在这个实例中,我们看到的是如何通过代理模式来实现某种功能的增强或控制。下面将详细讲解代理模式的基本概念...

    代理模式Demo代理模式代理模式Demo

    代理模式的核心思想是为一个对象提供一个代理,使得代理对象可以在不改变原有对象行为的前提下,增加额外的功能或者控制原对象的访问。这种模式可以用于延迟加载、安全控制、统计分析等多种场景。 在代理模式中,有...

    .net实现设计模式之代理模式

    代理模式的核心思想是为一个对象提供一个替代品或代表,这个替代品能够控制对原对象的访问,使得客户端代码可以通过代理对象与真实对象进行交互,而无需直接暴露真实对象的所有细节。这种设计模式在很多场景下都非常...

    Java 静态代理模式

    静态代理模式是一种结构型设计模式,其核心思想是通过创建一个代理类,这个代理类作为原对象的替代,提供与原对象相同的方法调用,但可以在调用前后添加额外的操作。这种模式在不修改原始对象代码的情况下,可以用于...

    java代理模式

    代理模式的核心思想是为一个对象提供一个代理,并由代理对象控制对原对象的引用。在Java中,代理模式有静态代理和动态代理两种实现方式。 首先,我们来详细了解一下静态代理。在静态代理中,我们需要创建一个代理类...

    代理模式小例子

    代理模式是一种设计模式,它在软件工程中扮演着重要的角色,允许我们为其他对象提供一个替代接口,以控制对原对象的访问。这种模式的主要目的是为了增加灵活性、安全性或者为对象提供额外的功能,同时保持客户端代码...

    设计模式专题之(六)代理模式---设计模式代理模式示例代码(python--c++)

    首先,代理模式的核心思想是为一个对象提供一个替身或代理,以便增加新的功能或控制对原对象的访问。代理模式分为三种类型:远程代理、虚拟代理和保护代理。在远程代理中,代理对象位于客户端,而原始对象位于远程...

    动态代理设计模式 日志和源码

    动态代理设计模式是一种在运行时创建代理对象的技术,它允许我们为现有的对象提供额外的功能,如日志记录、性能监控、事务管理等,而无需修改原对象的代码。这种模式在Java和许多其他编程语言中都有应用,尤其在...

    设计模式之_代理模式

    代理模式的核心思想是为一个对象提供一个替身,这个替身即代理对象,代理对象可以控制对原对象的访问,或者在原对象的基础上增加额外的功能。 在Java中,代理模式主要分为两种类型:静态代理和动态代理。 **静态...

    代理模式应用小例子C#

    代理模式是一种设计模式,它在软件工程中扮演着重要的角色,允许我们为其他对象提供一个替代接口,以控制对原对象的访问。在C#中,代理模式的应用可以帮助我们实现如远程访问、权限控制、缓存、日志等功能。这份...

    设计模式之代理模式

    代理模式是软件设计模式中的一种结构型模式,它在对象交互过程中引入一个代理,代理对象负责控制对原对象的访问。这种模式的主要目的是为了解耦,提供一种替代真实对象的方式,使得客户端代码可以更加灵活地处理对象...

    ios 进阶 代理模式

    代理模式是一种结构型设计模式,它为一个对象提供一个替身或者代表,以便控制对原对象的访问。代理对象在客户端和目标对象之间起到中介的作用,可以实现额外的功能,如缓存、日志、事务处理等。代理模式主要分为三种...

    代理模式Demo

    代理模式属于结构型设计模式,它创建了一个代理对象来控制对原对象的访问。代理对象与目标对象具有相同的接口,这样客户端就可以透明地调用代理对象,而无需知道目标对象的细节。代理对象可以添加额外的操作,如...

    java装饰模式及动态代理模式示例源码

    装饰模式和动态代理模式是Java编程中两种非常重要的设计模式,它们都在代码的扩展性和灵活性方面发挥着关键作用。下面将分别对这两种模式进行详细解释,并结合手写的数据库连接池和动态代理模式的使用进行深入探讨。...

Global site tag (gtag.js) - Google Analytics