代理模式原理java实例

package test;

class ProxyTest {

    public static void main(String[] args) {
        ProxyClass proxy = new ProxyClass();
        proxy.method_1();
        /*
         Console:
             This is ProxyClass.method_1()
            ---Before---
            This is RelClass.method_1()
            ---After----
         */
    }
}

class ProxyClass implements RelClassInf {

    RelClass rel = new RelClass();

    @Override
    public void method_1() {
        System.out.println("This is ProxyClass.method_1()");
        System.out.println("---Before---");
        rel.method_1();
        System.out.println("---After----");
    }

    @Override
    public void method_2() {
        System.out.println("This is ProxyClass.method_2()");
        System.out.println("---Before---");
        rel.method_2();
        System.out.println("---After----");
    }

}

interface RelClassInf {

    void method_1();

    void method_2();
}

class RelClass implements RelClassInf {

    @Override
    public void method_1() {
        System.out.println("This is RelClass.method_1()");
    }

    @Override
    public void method_2() {
        System.out.println("This is RelClass.method_2()");
    }

}
时间: 2024-11-09 05:12:19

代理模式原理java实例的相关文章

深刻理解代理模式在java中如何优化系统性能

最近参与实习公司的项目迭代,项目中需要实现系统的快速响应和大量数据处理.在不断的学习中获得一点儿心得,先记录下来.慢慢的修改! 关于代理模式的知识和简单应用之前的学习笔记中已经有记录了,可以复习一下.这里主要记录如何使用代理模式来实现延迟加载,进而提升系统系能和反应速度. 使用代理模式实现延迟加载的一个简单实例: 需求:项目中对系统的启动速度做了一定的要求 我们在系统首次加载时,因为不需要实际的数据来构造显示界面,这就为我们实现系统首次加载的快速响应提供了可能.在常规模式下,我们一般会在系统启动

代理模式和java动态代理

代理模式的作用及使用场景 使用代理模式的根本目的在于:如何在不直接操作对象的情况下,对此对象进行访问? 常用的场合包括:1)延迟加载:2)在调用实际对象的方法前后加入某些业务逻辑(作用有点像spring的AOP) 类结构: JAVA动态代理 JAVA提供了动态代理类以供用户方便地实现代理模式 public interface Subject { public void doRequest(); } public class SubjectImpl implements Subject { pub

设计模式之代理模式(Java)

简介 代理模式出场率真的相当的高,几乎所有框架中无一例外都用到了代理模式,所以了解一下收益还是很高的. 代理模式是什么 如果用一句话来描述代理模式: 代理模式就是为其他对象提供一种代理以控制对被代理对象的访问,也就是我们常说的中介 在开发以及生活中经常听到正向代理,反向代理这样的词,举例说明 正向代理 由于网络原因我们访问不了谷歌,这时候我们就需要找个梯子,替我们去访问谷歌,并且把我们需要的信息返回,这个梯子代理 反向代理 作为服务端为了安全,我们不想把实际服务器的信息暴露出去,已防止不法分子的

浅谈代理 模式与java中的动态代理

代理模式的定义: 代理模式是一个使用律非常高的模式,定义如下: 为其他对象提供一种代理,以控制对这个对象的访问. 类图: 简单的静态代理: public interface IRunner{ //这是一个代理类和被代理类都需要实现的接口 //在接口中定义一个抽象函数 public void request(); } //下面是真实的被代理类 public class Runner implements IRunner{ //实现接口中的方法 public void request(){ //实现

代理模式(Java的动态代理)

(一)是什么?what? ①:定义: ②:特征:1.0代理类(中间追求者),与委托类(追求者)有同样的接口: 2.0代理类--->主要负责为委托类预处理消息.过滤消息.把消息传递给委托类,事后处理消息等.[类似:帮别人追女朋友,打探消息]. 3.0代理类与委托类之间通常会有 关联关系 [类似哥们儿].一个代理类的对象 与 一个委托类的对象关联.代理类本身不真正实现服务,而是通过调用委托类的方法,来提供特定服务.[类似于帮追的哥们  是  根据  喜欢那女孩儿的哥们儿  的要求  来做事儿]. ③

Java的三种代理模式简述

本文着重讲述三种代理模式在java代码中如何写出,为保证文章的针对性,暂且不讨论底层实现原理,具体的原理将在下一篇博文中讲述. 代理模式是什么 代理模式是一种设计模式,简单说即是在不改变源码的情况下,实现对目标对象的功能扩展. 比如有个歌手对象叫Singer,这个对象有一个唱歌方法叫sing(). 1 public class Singer{ 2 public void sing(){ 3 System.out.println("唱一首歌"); 4 } 5 } 假如你希望,通过你的某种

JAVA基础(一)——代理模式

实现java代理一般分为静态代理和动态代理(jdk代理和cglib代理) 代理模式 简单的说就是对原有的业务进行代理,外界通过代理访问真实对象,代理类似现在的中介机构,房产中介就是一个代理,代理房东,租户只要找到代理而无须关心房东是谁,代理能在房东的基础上增强房东的行为. 代理模式代码 JAVA静态代理 业务接口 package com.rrg.proxy.jdk.staticProxy; /** * * @author abc * */ public interface Count { /**

java 代理模式,观察者模式

代理模式1 [java] view plain copy import <a href="http://lib.csdn.net/base/17" class='replace_word' title="Java EE知识库" target='_blank' style='color:#df3434; font-weight:bold;'>Java</a>.lang.reflect.InvocationHandler; import java

Android开发中无处不在的设计模式——动态代理模式

继续更新设计模式系列,写这个模式的主要原因是最近看到了动态代理的代码. 先来回顾一下前5个模式: - Android开发中无处不在的设计模式--单例模式 - Android开发中无处不在的设计模式--Builder模式 - Android开发中无处不在的设计模式--观察者模式 - Android开发中无处不在的设计模式--原型模式 - Android开发中无处不在的设计模式--策略模式 动态代理模式在Java WEB中的应用简直是随处可见,尤其在Spring框架中大量的用到了动态代理:算是最重要