`

静态代理类

阅读更多
代理模式是常用的Java 设计模式,它的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。

按照代理类的创建时期,代理类可分为两种。

静态代理类:
    由程序员创建或由特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。

动态代理类:在程序运行时,运用反射机制动态创建而成。

二、静态代理类
    如下, HelloServiceProxy 类是代理类,HelloServiceImpl类是委托类,这两个类都实现了HelloService接口。其中HelloServiceImpl类是HelloService接口的真正实现者,而HelloServiceProxy类是通过调用HelloServiceImpl 类的相关方法来提供特定服务的。HelloServiceProxy类的echo()方法和getTime()方法会分别调用被代理的HelloServiceImpl 对象的echo()方法和getTime()方法,并且在方法调用前后都会执行一些简单的打印操作。

由此可见,代理类可以为委托类预处理消息、把消息转发给委托类和事后处理消息等。

例程3 的HelloServiceProxy 类的源代码是由程序员编写的,在程序运行前,它的.class文件就已经存在了
分享到:
评论

相关推荐

    Java静态代理和动态代理

    在给定的例子中,`HelloServiceProxy` 是一个静态代理类,它持有一个 `HelloService` 的引用,即 `HelloServiceImpl` 对象。当客户端调用 `HelloServiceProxy` 的 `echo()` 或 `getTime()` 方法时,代理类会先执行...

    Spring模拟aop静态代理案例

    在压缩包文件"spring_daili"中,可能包含了实现上述步骤的源代码示例,包括接口定义、目标类、静态代理类以及测试代码等。通过阅读和分析这些代码,开发者可以直观地了解Spring AOP静态代理的工作原理,并将其应用到...

    spring+静态代理

    接下来,创建静态代理类`StaticProxy`,它也实现`Service`接口,并持有`RealService`的实例。在这个代理类中,我们可以添加额外的行为,比如日志记录、事务管理等: ```java public class StaticProxy implements ...

    Java静态代理与动态代理demo

    // 静态代理类 class StaticProxy implements Service { private Service realService; public StaticProxy(Service realService) { this.realService = realService; } @Override public void doSomething...

    PHP大牛线上培训班课-静态代理请求对象静态代理.zip

    2. **静态代理的实现**:详细解释了如何在PHP中创建静态代理类,通常是通过继承被代理对象的类或者实现相同的接口,然后在代理类中调用被代理对象的方法。 3. **请求对象的理解**:课程可能涵盖了请求对象在Web应用...

    静态代理和动态代理简单实现代码

    // 静态代理类 class StaticProxy implements Service { private Service realService; public StaticProxy(Service realService) { this.realService = realService; } @Override public void doSomething...

    动态代理和静态代理demo

    // 静态代理类 public class StaticProxy implements Service { private Service realService; public StaticProxy(Service realService) { this.realService = realService; } @Override public void ...

    java静态代理与动态代理

    3. **静态代理类实现**: ```java public class HelloServiceProxy implements HelloService { private HelloService helloService; // 构造函数和setter方法略... public String echo(String msg) { System....

    静态代理demo

    现在,我们创建静态代理类(StaticProxy),它同样实现了Service接口,并持有RealSubject的实例: ```java public class StaticProxy implements Service { private Service realSubject; public StaticProxy...

    Spring框架AOP静态代理.pdf

    接下来,创建一个静态代理类 ServiceProxy,实现了 SomeService 接口。该类将目标对象 SomeServiceImpl 封装起来,并在调用目标对象的方法之前或之后执行额外的逻辑。 public class ServiceProxy implements ...

    创建静态代理

    假设我们有一个简单的`Service`接口和其实现类`RealService`,以及一个静态代理类`StaticProxy`。 ```java // 定义接口 public interface Service { void execute(); } // 创建委托类 public class RealService ...

    JAVA JDK静态代理、动态代理、CGlib代理的代码演示

    // 静态代理类 class ServiceProxy implements Service { private Service target; public ServiceProxy(Service target) { this.target = target; } @Override public void doSomething() { before(); ...

    Java 代理 代理模式 静态代理与动态代理 常见的动态代理实现 .md

    **定义静态代理类**: ```java public class XiaoHongSellProxy implements SellPerfume { private SellPerfume sellPerfumeFactory; public XiaoHongSellProxy(SellPerfume sellPerfumeFactory) { this....

    静态代理与动态代理Demo

    静态代理是程序员在编译时就已经明确知道了代理类和真实被代理类的关系,代理类通常会继承或实现被代理类的接口,这样就可以直接调用被代理类的方法。在实际应用中,静态代理常用于控制访问权限、添加日志、性能监控...

    Java 静态代理模式

    在Java中,静态代理是通过在代理类中显式实现目标接口来实现的。下面将详细介绍静态代理模式的概念、作用、实现方式以及其优缺点。 ### 1. 静态代理概念 静态代理模式是一种结构型设计模式,其核心思想是通过创建一...

    包含静态代理和动态代理demo代码

    静态代理的示例将展示如何通过代理类来包装和扩展真实类的功能,动态代理的示例则会展示如何利用反射机制在运行时创建代理类并实现相同的目标。通过学习和理解这些代码,你将能够更好地掌握代理模式的应用,并在实际...

    JAVA静态代理和动态代理

    总结来说,Java的静态代理适用于代理类较少且代理逻辑相对固定的情况,而动态代理则在代理类数量不确定或者代理逻辑可能变化时更为合适。两者都可以实现为原始对象添加附加功能,但动态代理在灵活性和代码维护方面...

    静态代理和动态代理的例子

    静态代理适用于代理类和被代理类关系固定的情况,而动态代理则适用于需要动态地创建代理对象,或者代理类和被代理类关系不确定的情况。在实际开发中,选择哪种代理方式取决于具体的需求和场景。例如,如果需要为多个...

Global site tag (gtag.js) - Google Analytics