代理和装饰模式的区别: 他们在代码实现上有很大的相同点但是本质有着区别 装饰器模式:能动态的新增或组合对象的行为。 代理模式:为其他对象提供一种代理以控制对这个对象的访问. 装饰模式是“新增行为”,而代理模式是“控制访问”。关键就是我们如何判断是“新增行为”还是“控制访问”。 代理具体的时间方法: 第一步:定义一个接口: package cn.eversec.proxy; public interface Student { public String xuexi(); public String daren(); } 第二步:实现要代理的接口 package cn.eversec.proxy; public class StudentImpl implements Student { @Override public String xuexi() { // TODO Auto-generated method stub return "haohaoxuexi,tiantianxiangshang"; } @Override public String daren() { // TODO Auto-generated method stub return "woyaodaren"; } } 第三部:书写代理逻辑(这里采用动态代理的方式) package cn.eversec.proxy; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; public class ProxyImpl implements InvocationHandler { //定义一个对象(实际就是要代理的对象) private Object obj; public ProxyImpl(){ } public ProxyImpl(Object obj){ this.obj=obj; } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if(method.getName().equals("xuexi")){ before(); Object invoke = method.invoke(obj, args); after(); return invoke; }else{ Object invoke = method.invoke(obj, args); return invoke.toString(); } } public static Object factory(Object obj) { Class cls = obj.getClass(); return Proxy.newProxyInstance(cls.getClassLoader(),cls.getInterfaces(),new ProxyImpl(obj)); } //代理前的操作 public void before(){ System.out.println(">>>>>"); } //代理后的操作 public void after(){ System.err.println("============"); } } 第四步:书写测试类 package cn.eversec.proxy; public class DynamicProxy { public static void main(String[] args) { Student student = new StudentImpl(); Student factory = (Student) ProxyImpl.factory(student); String xuexi = factory.xuexi(); System.out.println(xuexi); // String daren = student.daren(); // System.out.println(daren); } } 以上代码如有疑问可以询问892086352
相关推荐
Java设计模式之代理模式 1.代理模式 1.1 静态代理 1.2 动态代理 1.3.代理模式使用原因和应用方面
### Java设计模式之虚拟代理模式详解 #### 一、引言 在软件工程领域,设计模式作为一种被广泛接受的最佳实践,对于提高代码质量和可维护性起着至关重要的作用。其中,“代理模式”作为结构型设计模式之一,在解决...
在Java编程领域,设计模式是一种解决常见问题的模板或最佳实践,它被广泛应用于软件开发中以提高代码的可读性、可维护性和可扩展性。代理模式是设计模式的一种,它提供了一种对目标对象进行增强或者控制访问的方式。...
Java设计模式之代理模式[收集].pdf
Java设计模式是软件开发中的重要概念,它提供了一套通用的解决方案模板,使得代码更加可复用、可扩展。在这些模式中,代理模式(Proxy Pattern)是一种常用的结构型设计模式,它允许我们为一个对象创建一个代理,该...
在Java编程中,设计模式是一种解决常见问题的模板或最佳实践,它可以帮助开发者编写更加灵活、可维护和可扩展的代码。代理设计模式是其中的一种,它的主要作用是在不修改原有对象的基础上,为对象添加额外的功能或者...
在这个“Java设计模式-代理模式例子”中,我们将深入探讨代理模式的概念、实现方式以及它在实际开发中的应用。 代理模式的核心思想是为一个对象提供一个替身,这个替身即代理对象,代理对象控制对原对象的访问。在...
**Java设计模式——代理模式详解** 代理模式是软件设计模式中的一个重要组成部分,它在Java编程中扮演着举足轻重的角色。代理模式的核心思想是为一个对象提供一个替身,这个替身即代理对象,代理对象可以控制对原...
JAVA设计模式之代理模式 代理模式是结构型模式之一,它主要解决了直接访问对象时带来的问题,如对象创建开销很大、某些操作需要安全控制、需要进程外的访问等。代理模式的目的是提供一种代理,以控制对这个对象的...
Java设计模式是面向对象编程领域中的重要概念,它是一套被广泛接受并实践的解决软件设计问题的经验总结。设计模式并非具体的代码或库,而是一种在特定情境下为了解决常见问题而制定的通用解决方案的描述。它们描述了...
Java 经典设计模式讲解以及项目实战 设计模式简介:主要介绍各种设计模式的概念和运用场景等 设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述...
《Java设计模式》课程设计报告主要探讨了如何利用Java编程语言和MyEclipse集成开发环境来实现基于设计模式的西瓜市场系统。这个项目涵盖了四种重要的设计模式:单例模式、代理模式、建造者模式和抽象工厂模式,为...
《Java设计模式之禅》是一本深入浅出讲解设计模式的书籍,书中不仅包含23种经典设计模式的案例,还详细介绍了设计模式背后的思想和原则,适合初学者以及对设计模式有一定了解的程序员阅读。本书旨在帮助读者理解如何...
《Java设计模式》是刘伟老师的一本经典教材,它深入浅出地讲解了软件设计中的重要概念——设计模式。设计模式是经验丰富的开发者在解决常见问题时总结出的通用解决方案,是软件开发中的智慧结晶。这本书的课后习题和...
### Java设计模式(刘伟) #### 一、引言 在《Java设计模式》这本书中,作者刘伟全面地介绍了24种经典的设计模式,并通过丰富的案例和代码示例进行了详细的解析。本书不仅适合初学者作为入门教材,也适合有一定...
Java设计模式是软件工程中的一种最佳实践,它总结了在特定场景下解决常见问题的经验,为程序员提供了可重用的解决方案。本资料“《java设计模式》课后习题模拟试题解答——刘伟.zip”主要涵盖了Java设计模式的学习与...
### Java设计模式详解 在软件开发领域,设计模式是一种被广泛采用的解决方案,用来解决常见的设计问题。设计模式不仅能够帮助开发者写出可复用、可维护的代码,还能提高团队间的沟通效率。以下是对给定文件中提到的...