代理模式一般涉及到的角色有:
–抽象角色:声明真实对象和代理对象的共同接口
–代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替真实对象。同时,代理对象可以在执行真实对象操作时,附加其他的操作,相当于对真实对象进行封装
–真实角色:代理角色所代表的真实对象,是我们最终要引用的对象
package com.zj.exercise;
/**
* 抽象角色:生命真实对象和代理对象的共同接口
* @author zhengjiong
* time:2011-9-21 下午11:06:49
*/
public interface AbstractSubject
{
public void request();
}
package com.zj.exercise;
/**
* 真实角色:代理角色所代表的真实对象,是我们最终要引用的对象
* @author zhengjiong
* time:2011-9-21 下午11:41:56
*/
public class RealSubject implements AbstractSubject
{
@Override
public void request()
{
System.out.println("RealSubject request()");
}
}
package com.zj.exercise;
/**
* 代理模式的代理角色
* @author zhengjiong
* time:2011-9-21 下午11:06:59
*/
public class ProxySubject implements AbstractSubject
{
private RealSubject realSubject = new RealSubject();
@Override
public void request()
{
preRequest();
realSubject.request();
afterRequest();
}
private void preRequest(){
System.out.println("preRequest()");
}
private void afterRequest(){
System.out.println("afterRequest()");
}
}
package com.zj.exercise;
//测试类
public class Test
{
public static void main(String[] args)
{
AbstractSubject proxy = new ProxySubject();
proxy.request();
}
}
分享到:
相关推荐
在这个例子中,"优秀的设计模式示例-静态代理模式"提供了实际项目中的代码实例,旨在帮助开发者更好地理解和应用静态代理模式。 静态代理模式的核心思想是通过代理类来代理原始对象(也称为真实对象或服务对象),...
Java静态代理模式是一种设计模式,它允许我们为一个对象提供一个代理,以便增强或扩展其功能,同时不改变原有对象的代码。在Java中,静态代理是通过在代理类中显式实现目标接口来实现的。下面将详细介绍静态代理模式...
静态代理模式是设计模式中的一种,它属于结构型模式,主要用来在不修改原有对象的基础上,通过一个代理对象来增强或扩展原对象的功能。在本篇文章中,我们将深入探讨静态代理模式的概念、工作原理以及其优缺点。 ##...
下面是一个简单的静态代理模式示例: ```java public interface Service { void doSomething(); } public class RealService implements Service { @Override public void doSomething() { // 实现具体业务...
在Java编程中,静态代理模式是一种设计模式,它允许我们在不修改原始对象代码的情况下,通过创建一个代理类来扩展或增强对象的功能。静态代理模式在Java SE中有着广泛的应用,特别是在需要控制对某个对象访问或者...
在本篇Spring学习笔记中,我们将探讨静态代理模式在Spring框架中的应用与分析。静态代理是一种常见的设计模式,它在不修改目标类代码的情况下,通过代理类来扩展或增强目标类的功能。在Spring中,静态代理主要应用于...
在Java编程中,代理模式是一种常见的设计模式,它允许我们为一个对象提供一个代理以控制对这个对象的访问。代理模式通常用于增加额外的功能或在访问原对象时进行额外的操作,比如日志记录、安全控制、性能统计等。...
//代理模式内部引用了真实角色 public void requst() { this.preRequest(); //在真实角色操作之前所附加的操作 if(null == realsubject) { realsubject = new ReallSubject(); } realsubject.requst(); // ...
设计模式之代理模式_静态代理的一个java实现的demo。主类在Client中。仅代码实现,可供初学者参考使用
在本主题"spring+静态代理"中,我们将深入探讨如何利用Spring框架来实现静态代理模式,并通过接口回调的方式来增强代码的灵活性和可扩展性。 静态代理是一种设计模式,它允许我们在不修改原始对象(被代理对象)的...
以下是一个简单的静态代理模式的步骤: 1. 定义一个接口,如`Service`,其中声明了需要被代理的方法。 2. 创建真实类(Target)实现`Service`接口,实现具体业务逻辑。 3. 创建代理类(Proxy)同样实现`Service`...
总结起来,这个案例旨在通过Spring AOP的静态代理模式,帮助开发者掌握如何在不改变原有业务逻辑的情况下,插入额外的行为,从而提升代码的灵活性和可扩展性。同时,理解和实践这个案例,也能加深对面向切面编程的...
以下是一个简单的静态代理模式示例: 1. 定义接口: ```java public interface Service { void doSomething(); } ``` 2. 实现目标对象: ```java public class RealService implements Service { @Override ...
以下是一个简单的静态代理模式模板代码示例: ```java // 目标接口 public interface Target { void doSomething(); } // 目标类 public class RealTarget implements Target { @Override public void ...
在这个静态代理案例中,静态代理模式主要用于增加额外的功能,例如日志记录、权限验证等,而不会影响到核心业务逻辑(购票)。代理类将持有目标对象(售票员),并在调用目标对象方法时进行预处理和后处理。 总的来...
6. **优缺点分析**:分析了静态代理模式的优点,如解耦、扩展性,以及可能的缺点,如代码量增加、可能导致类结构复杂化等。 7. **实例演示**:通过多个视频教程(如“容器中”、“静态代理_1”、“_2”等),详细...
以下是一个简单的静态代理模式示例: ```java // 目标接口 interface Target { void doSomething(); } // 目标实现类 class RealTarget implements Target { @Override public void doSomething() { System....
在Java编程中,设计模式是一种解决常见问题的模板或最佳实践,它可以帮助开发者编写更加灵活、可维护和可扩展的代码。代理设计模式是其中的一种,它的主要作用是在...在实际开发中,应根据项目需求选择合适的代理模式。
静态代理模式的优点显而易见,比如它能够在不修改目标对象代码的前提下,对功能进行扩展;同时,代理类和目标对象之间存在相同的接口,可以降低客户与目标对象之间的耦合度。但同样存在不足之处,静态代理要求代理类...
以下是一个简单的静态代理模式示例: 1. **接口SelfInterface**:定义了代理和真实对象共同实现的方法,例如: ```java public interface SelfInterface { void doSomething(); } ``` 2. **真实对象RedWine**:...