[关键字]: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平台的应用程序设计中。代理模式的核心思想是为一个对象提供一个替身或代理,以控制对这个对象的访问。这种模式允许我们通过代理来间接...
代理模式是设计模式中的一种结构型模式,它在对象交互中起到了中介的作用,允许通过代理对象来控制对原对象的访问。代理模式的核心思想是为一个对象提供一个替身,以便增加新的功能或者控制对原对象的访问。这种模式...
代理模式的核心思想是创建一个代理类,该类作为原对象的代理,它拥有与原对象相同的方法接口,但在调用这些方法时,代理类可以执行一些额外的操作。这些额外的操作可以包括但不限于验证、日志记录、事务管理、缓存等...
代理模式的核心思想是为一个对象提供一个替身,这个替身即代理对象,代理对象控制对原对象的访问。在Java中,代理模式主要有静态代理和动态代理两种实现方式。 1. 静态代理:在编译时就已经确定了代理类与目标类的...
代理模式的核心思想是为一个对象提供一个替身,这个替身即代理对象,代理对象可以控制对原对象的访问。在实际应用中,代理模式常用于增加功能、安全控制、性能优化等方面。 代理模式主要有以下几种类型: 1. **...
代理模式是一种常用的设计模式,它在软件开发中扮演着重要角色,允许我们通过一个代理类来控制对原对象的访问。在《设计模式:可复用面向对象软件的基础》(通常称为GoF设计模式)中,代理模式被定义为“为其他对象...
代理模式是一种设计模式,它是结构型模式的一种,主要用于在对象之间提供一个代理以控制对原对象的访问。在这个实例中,我们看到的是如何通过代理模式来实现某种功能的增强或控制。下面将详细讲解代理模式的基本概念...
代理模式的核心思想是为一个对象提供一个代理,使得代理对象可以在不改变原有对象行为的前提下,增加额外的功能或者控制原对象的访问。这种模式可以用于延迟加载、安全控制、统计分析等多种场景。 在代理模式中,有...
代理模式的核心思想是为一个对象提供一个替代品或代表,这个替代品能够控制对原对象的访问,使得客户端代码可以通过代理对象与真实对象进行交互,而无需直接暴露真实对象的所有细节。这种设计模式在很多场景下都非常...
静态代理模式是一种结构型设计模式,其核心思想是通过创建一个代理类,这个代理类作为原对象的替代,提供与原对象相同的方法调用,但可以在调用前后添加额外的操作。这种模式在不修改原始对象代码的情况下,可以用于...
代理模式的核心思想是为一个对象提供一个代理,并由代理对象控制对原对象的引用。在Java中,代理模式有静态代理和动态代理两种实现方式。 首先,我们来详细了解一下静态代理。在静态代理中,我们需要创建一个代理类...
代理模式是一种设计模式,它在软件工程中扮演着重要的角色,允许我们为其他对象提供一个替代接口,以控制对原对象的访问。这种模式的主要目的是为了增加灵活性、安全性或者为对象提供额外的功能,同时保持客户端代码...
首先,代理模式的核心思想是为一个对象提供一个替身或代理,以便增加新的功能或控制对原对象的访问。代理模式分为三种类型:远程代理、虚拟代理和保护代理。在远程代理中,代理对象位于客户端,而原始对象位于远程...
动态代理设计模式是一种在运行时创建代理对象的技术,它允许我们为现有的对象提供额外的功能,如日志记录、性能监控、事务管理等,而无需修改原对象的代码。这种模式在Java和许多其他编程语言中都有应用,尤其在...
代理模式的核心思想是为一个对象提供一个替身,这个替身即代理对象,代理对象可以控制对原对象的访问,或者在原对象的基础上增加额外的功能。 在Java中,代理模式主要分为两种类型:静态代理和动态代理。 **静态...
代理模式是一种设计模式,它在软件工程中扮演着重要的角色,允许我们为其他对象提供一个替代接口,以控制对原对象的访问。在C#中,代理模式的应用可以帮助我们实现如远程访问、权限控制、缓存、日志等功能。这份...
代理模式是软件设计模式中的一种结构型模式,它在对象交互过程中引入一个代理,代理对象负责控制对原对象的访问。这种模式的主要目的是为了解耦,提供一种替代真实对象的方式,使得客户端代码可以更加灵活地处理对象...
代理模式是一种结构型设计模式,它为一个对象提供一个替身或者代表,以便控制对原对象的访问。代理对象在客户端和目标对象之间起到中介的作用,可以实现额外的功能,如缓存、日志、事务处理等。代理模式主要分为三种...
代理模式属于结构型设计模式,它创建了一个代理对象来控制对原对象的访问。代理对象与目标对象具有相同的接口,这样客户端就可以透明地调用代理对象,而无需知道目标对象的细节。代理对象可以添加额外的操作,如...
装饰模式和动态代理模式是Java编程中两种非常重要的设计模式,它们都在代码的扩展性和灵活性方面发挥着关键作用。下面将分别对这两种模式进行详细解释,并结合手写的数据库连接池和动态代理模式的使用进行深入探讨。...