一、代理
所谓代理,就是一个人或者一个机构,代替另一个人或者机构做一件事。相当于windows中的快捷方式。
代理模式的结构:
1、 抽象主题角色:包含了代理主题与真实主题之间共同的接口。
2、 代理主题角色:含有对真实主题角色的引用代理角色,它在处理客户端调用真实主题角色时,可以在返回真实主题之前或者之后加一一些处理方法,而不仅仅是只返回一个对真实主题的引用。
3、 真实主题角色:定义了代理角色代理的真实对象。
//抽象主题接口
public interface Subject {
public void request();
}
//真实对象主题类
public class RealSubject implements Subject {
public void request() {
System.out.println("处理真实主题.....");
}
}
//代理对象主题类
public class ProxySubject implements Subject {
// 对真实对象一个引用
private RealSubject real;
// 处理真实对象的方法
public void request() {
this.preRequest();
// 执行真实对象中的方法
real = new RealSubject();
real.request();
this.postRequest();
}
// 设计一个方法在真实对象之间执行
public void preRequest() {
System.out.println("执行在真实对象开始之前....");
}
// 设计一个方法在真实对象之后执行
public void postRequest() {
System.out.println("执行在真实对象开始之后.....");
}
}
//测试类
public class Test {
public static void main(String[] args) {
Subject proxy = new ProxySubject();
proxy.request();
}
}
代理模式这个就可以使在对真实对象执行时,可以进行别的特别的处理,然后提供给客户端。
二、动态代理
分享到:
相关推荐
静态代理与动态代理的区别 代理模式可以进一步细分为静态代理和动态代理。 - **静态代理**:在程序编译时就已经确定代理类的具体实现方式。这意味着每次需要代理不同的操作时,都需要修改代理类的代码,这违反了...
### Java静态代理与动态代理详解 #### 一、代理模式概述 代理模式是软件工程领域中常用的一种设计模式,尤其在Java开发中极为常见。它主要用于控制对某个对象的访问,或者提供额外的功能如日志记录、性能追踪、...
Java提供了两种实现代理模式的方式:静态代理和动态代理。 **静态代理** 静态代理是在编译时就已经确定了代理类,通过继承或实现目标接口来创建代理类。以下是一个简单的静态代理实现示例: ```java // 目标接口 ...
代理模式分为静态代理和动态代理两种主要形式,每种都有其特定的应用场景和优势。下面我们将深入探讨这两种代理模式,并通过一个“黄牛买票”的例子来具体说明。 首先,我们来看静态代理。静态代理是程序员在编译时...
四、静态代理与动态代理的比较 1. **灵活性**:动态代理比静态代理更灵活,因为不需要预先编写代理类的源代码,可以适应接口的变化。 2. **代码量**:静态代理需要为每个委托类编写单独的代理类,如果委托类很多,会...
总结来说,这个资源提供了一个理解和实践静态代理与动态代理的好例子。通过学习和运行这些代码,你可以深入理解这两种代理模式的工作原理,以及如何在实际项目中应用它们。同时,这也有助于提升你对Java反射机制的...
一个静态代理和动态代理的小例子,开发时使用的工具是myeclipse,直接使用myeclipse工具导入即可,希望能 给大家理解这方面的入门知识带来些作用,同时也希望大家指出不足,我可以更加进行改进
#### 五、静态代理与动态代理对比 - **静态代理**:如案例中的`People1TimeProxy`类,它显式地实现了`Speak`接口,并在内部持有`People`对象的引用。这种方式较为僵化,每增加一个接口就需要新增一个代理类。 - **...
代理模式分为两种主要类型:静态代理和动态代理。这两种代理方式在Java中都有广泛的应用,特别是在处理远程调用、事务管理、权限控制等方面。 **静态代理** 静态代理是最基础的代理实现方式,它需要程序员手动创建...
在Java开发中,动态代理和CGLIB代理是两种常见的面向切面编程(AOP)实现方式,它们都用于在不修改原有代码的情况下,增强或扩展对象的功能。本篇文章将深入探讨JDK动态代理和CGLIB代理的区别,以及它们在实际应用中...
本文将详细介绍JDK动态代理的原理与应用,帮助读者深入理解其工作方式以及如何在实际项目中运用。 #### 二、JDK动态代理简介 JDK动态代理是Java平台提供的一个工具包,用于在运行时创建代理对象。它主要适用于实现...
Java提供了两种主要的代理实现方式:静态代理和动态代理。 **静态代理** 静态代理是程序员手动创建代理类并实现与目标对象相同的接口。代理类和目标类都必须实现相同的接口,这样代理类就可以在调用目标对象方法的...
2: 动态代理demo 举例实际应用场景(载入数据库驱动的时候,使用AIDL与系统Servic进行通信) 3: 动态代理使用到基础理论:ClassLoader 加载.class字节码文件得到 , Class对象, Class对象通过 newProxyInstance ...
在Spring中,动态代理通常与AOP(面向切面编程)结合使用。AOP允许我们在程序执行过程中,在特定的“切点”插入自定义的行为,如日志、事务管理、权限控制等。Spring AOP通过动态代理机制来实现这些功能,使我们的...
#### 静态代理与动态代理 静态代理是指在编译期就能确定代理对象和目标对象之间的关系。例如,在上面的例子中,程序员通过创建 `UserProxy` 类来代理 `UserDao` 接口的行为。这种方式的优点在于编译期就能确定代理...
Java动态代理是Java编程中一个重要的特性,它允许我们在运行时创建对象的代理,从而可以在不修改原有代码的情况下,对原有对象的行为进行扩展或增强。动态代理主要分为两种:JDK代理和CGLIB代理。 **JDK代理**是...
代理设计模式分为静态代理和动态代理两种类型。 ### 静态代理 静态代理是在编译时就已经确定了代理关系,代理类和真实类的关系是硬编码在代理类中的。下面我们将详细介绍静态代理的实现方式: 1. **定义接口**:...