`
虚无的曾经
  • 浏览: 36969 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Proxy模式

阅读更多

快放假了···难得空闲···整理一下工作中常用的模式放上来···

定义所需要的接口:
  1. package com.xxx;   
  2.   
  3. public interface Artist {   
  4.     public void show();   
  5. }  
实现该接口的类:
  1. package com.xxx;   
  2.   
  3. public class Star implements Artist{   
  4.     private String name = null;   
  5.     private String action = null;   
  6.        
  7.     public String getAction() {   
  8.         return action;   
  9.     }   
  10.   
  11.     public void setAction(String action) {   
  12.         this.action = action;   
  13.     }   
  14.   
  15.   
  16.     public String getName() {   
  17.         return name;   
  18.     }   
  19.   
  20.     public void setName(String name) {   
  21.         this.name = name;   
  22.     }   
  23.   
  24.     public void show() {   
  25.         System.out.println(name + "   " + action);   
  26.     }   
  27. }  
代理类:
  1. package com.xxx;   
  2.   
  3. import java.lang.reflect.InvocationHandler;   
  4. import java.lang.reflect.Method;   
  5. import java.lang.reflect.Proxy;   
  6.   
  7. public class AProxy implements InvocationHandler{   
  8.     private Object delegate = null;   
  9.        
  10.     public Object bind(Object delegate){   
  11.         this.delegate = delegate;   
  12.         return Proxy.newProxyInstance(delegate.getClass().getClassLoader(), delegate.getClass().getInterfaces(), this);   
  13.     }   
  14.   
  15.     public Object invoke(Object obj, Method method, Object[] args) throws Throwable {   
  16.         System.out.println("签约");   
  17.         Object result = method.invoke(delegate, args);   
  18.         System.out.println("唱完了新闻发布会");   
  19.         return result;   
  20.     }   
  21. }   
测试类:
  1. package com.xxx;   
  2.   
  3. public class TestMain {   
  4.     public static void main(String [] args) {   
  5.         AProxy a = new AProxy();   
  6.         Star star = new Star();   
  7.         ((Star)star).setName("刘德华");   
  8.         ((Star)star).setAction("唱歌");   
  9.         Artist artist = (Artist) a.bind(star);         
  10.         artist.show();         
  11.     }   
  12. }   

运行结果:

签约
刘德华   唱歌
唱完了新闻发布会

分享到:
评论

相关推荐

    Proxy 模式学习代码

    Proxy模式是一种设计模式,它允许我们为一个对象创建一个代理对象,这个代理对象在客户端和目标对象之间起到中介的作用。这种模式在软件工程中广泛应用,主要用于控制对真实对象的访问,提供额外的功能,如日志、...

    简单工厂模式,工厂方法模式,抽象工厂模式和Proxy模式

    到工厂方法到抽象工厂,这几种都带有“工厂”的模式,总是容易叫人迷糊,我仔细研究了下,然后用简单的例子做类比,列出了自己的通俗理解和比较,大部分是自己的体会,感觉理的比较清楚,末尾提了下Proxy模式。

    基于Proxy模式的分布式MySQL数据库中间件设计源码

    MySQL数据库中间件:基于C语言开发,包含59个文件,包括22个C源文件...该项目是一个分布式MySQL数据库中间件,采用Proxy模式设计,基于核心业务对象切分,旨在提供高效的数据库查询和处理能力,适用于分布式系统环境。

    从房屋买卖看 java proxy 模式

    标题中的“从房屋买卖看 java proxy 模式”暗示了我们将通过一个具体的场景来探讨 Java 中的代理(Proxy)模式。在软件设计中,代理模式是一种结构型设计模式,它为其他对象提供一种代理以控制对这个对象的访问。在...

    C++ Proxy模式

    Proxy模式是软件设计模式中的一个关键元素,属于结构型模式的一种。在C++中,Proxy模式主要用于为其他对象提供一种代理以控制对这个对象的访问。这种模式的核心思想是通过创建一个代理对象来充当目标对象的中介,...

    设计模式C++学习之代理模式(Proxy)

    代理模式是一种设计模式,它是结构型模式之一,主要用于在客户端和目标对象之间建立一个代理对象,以便控制对目标对象的访问。在C++中,代理模式可以用来为其他对象提供一种代理以控制对这个对象的访问,或者增加...

    设计模式之代理模式proxy.zip

    JDK动态代理基于接口实现,它要求目标对象必须实现至少一个接口,然后通过Proxy类和InvocationHandler接口来创建并控制代理对象。当我们调用代理对象的方法时,实际执行的是InvocationHandler的invoke方法,这样可以...

    Proxy代理模式经典实例(绝对OOP)

    在Java中,Proxy模式主要依赖于Java的动态代理机制,这通常涉及到`java.lang.reflect.Proxy`和`java.lang.reflect.InvocationHandler`两个核心接口。`Proxy`类用于生成代理对象,而`InvocationHandler`接口定义了...

    apache+tomcat负载均衡_proxy模式

    内附完整配置教程和修改后的apache的httpd.conf文件和tomcat的server.xml配置文件,包含test测试项目,不包含apache和tomcat安装文件。 本教程参考网上资料,本机测试成功,如有问题可以私信说明。

    详解设计模式中的proxy代理模式及在Java程序中的实现

    Proxy模式是设计模式中的一种,它提供了一种对对象访问的控制手段,使得在不修改原有对象的基础上,可以通过代理对象来扩展或增强原有对象的功能。在Java编程中,Proxy模式的应用非常广泛,尤其是在处理远程调用、...

    Programming_Proxy_classic_code_delphi.rar_delphi Proxy_proxy_pro

    Proxy模式是一种设计模式,其主要目的是为其他对象提供一个代理以控制对这个对象的访问。在Delphi中,Proxy可以用于创建远程代理,使得客户端可以像操作本地对象一样操作远程服务。这种模式在分布式系统、数据访问...

    23种设计模式整理pdf

    Proxy 模式是一种结构型模式,用于提供一种访问对象的接口。Proxy 模式的优点是可以提供一种统一的访问对象的接口,减少了代码的耦合度。Proxy 模式的缺点是它可能会增加代码的复杂度。 7. Adapter 模式 Adapter ...

    二十三种设计模式【PDF版】

    设计模式之 Proxy(代理) 以 Jive 为例,剖析代理模式在用户级别授权机制上的应用 设计模式之 Facade(门面?) 可扩展的使用 JDBC针对不同的数据库编程,Facade提供了一种灵活的实现. 设计模式之 Composite(组合) ...

    设计模式1,FACADE模式,Adapter

    本文将深入探讨FACADE模式、Adapter模式以及Singleton和Proxy模式的基本概念、应用场景和关键要素。 首先,FACADE(外观)模式是一种接口型模式,它的主要作用是为复杂的子系统提供一个简单的接口,使得客户端无需...

    JavaScript设计模式与开发实践.pdf

    由浅入深地讲解了16个设计模式,包括 singleton模式、Factory模式、Abstract Factory模式、Builder模式、Prototype模式、Adapter模式、Bridge模式、Composite模式、Decorator模式、Flyweight模式、Proxy模式、Chain ...

    java实现Proxy例子

    我自己用eclipse写的java代码,可以直接用eclipse导入,也可以直接用java -jar proxy_sample.jar执行 代码量很小,尽量通过注释进行说明 本例实现了InvocationHandler...在研究代理模式(Proxy模式)的朋友可以交流一下

    设计模式的几个简单例子

    Proxy模式是一种行为型设计模式,它为其他对象提供一种代理以控制对这个对象的访问。在提供的代码中,`ICar`接口定义了`MoveCar()`方法,它是所有汽车类需要遵循的行为规范。`ProxyCar`类是代理,实现了`ICar`接口,...

    C++设计模式.pdf

    Proxy模式为其他对象提供一个代理以控制对这个对象的访问,可以实现延迟加载、权限控制等功能。 ### 行为模式 #### Template Method模式 Template Method模式定义了一个操作中的算法骨架,而将一些步骤延迟到子类...

Global site tag (gtag.js) - Google Analytics