美文网首页
Java语言中代理模式简介(一)

Java语言中代理模式简介(一)

作者: java大湿兄 | 来源:发表于2017-09-10 16:44 被阅读0次

1 代理的作用

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

2 代理模式的例子

假设有一个Italk接口,有空的方法talk(说话),所有的Person对象都实现(implements)这个接口,实现talk方法,程序有很多地方都将Person实例化,执行talk方法,后来发现程序里有一些除了要说话以外还要唱歌(sing),那么我们既不能在Italk接口里增加sing()方法,又不能在每个Person对象都增加sing方法,我们只有增加一个代理类TalkProxy,这个代理类里实现talk和sing方法,然后在需要sing方法的地方调用代理类即可,代码如下:

2.1 接口类Italk

public interface Italk

{

public void talk(String msg);

}

2.2 委托类Person

public class Person implements Italk

{

public String name;

public String age;

public Person(String name, String age)

{

this.name = name;

this.age = age;

}

public void talk(String msg)

{

System.out.println(msg + "! 大家好, 我是 " + name + ", 我年龄是 " + age);

}

}

2.3 代理类TalkProxy

public class TalkProxy implements Italk

{

private Italk talker;

public TalkProxy(Italk talker)

{

this.talker = talker;

}

public void talk(String msg)

{

talker.talk(msg);

}

public void talk(String msg, String singname)

{

talker.talk(msg);

sing(singname);

}

private void sing(String singname)

{

System.out.println("歌的名字是:" + singname);

}

}

2.4 测试类:

public class Test

{

public static void main(String[] args)

{

Italk person = new Person("张三", "20");

person.talk("hi");

System.err.println(">>>>>>>>>>>>>>>");

TalkProxy talker = new TalkProxy(person);

talker.talk("hi", "<<歌唱祖国>>");

}

}
2.5 代码分析

代理分为静态代理和动态代理,上面的例子是静态代理,后面的文章我会再写一下关于动态代理,以及使用ASM生成代理类的例子。

学习Java的同学注意了!!!
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群346942462,我们一起学Java!

相关文章

  • Java代理模式之JDK动态代理

    了解什么是动态代理模式,可参考Java设计模式之代理模式 简介 JDK动态代理是java.lang.reflect...

  • Java代理模式及三种方式

    导读 移动开发知识体系总章(Java基础、Android、Flutter) 代理模式简介 Java的三种代理模式 ...

  • Java设计模式之10_Proxy(代理模式)

    更多Java设计模式:Java设计模式-目录 一、代理简介 为某个对象提供一个代理,以控制对这个对象的访问。代理类...

  • 代理模式

    简介 代理模式也是一种增强现有对象的方法,Java中主要有静态代理和动态代理两种模式,在实现具体实现层面,...

  • 简单剖析代理模式实现原理

    代理模式在java中随处可见,其他编程语言也一样,它的作用就是用来解耦的。代理模式又分为静态代理和动态代理。先从简...

  • Java语言中代理模式简介(一)

    1 代理的作用 代理模式是常用的Java设计模式,它的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处...

  • Java代理模式之CGLIB动态代理

    了解什么是动态代理模式,可参考Java设计模式之代理模式 简介 前面我们了解了JDK动态代理技术,发现其真实对象必...

  • java代理模式的那些事

    java代理模式-登场 什么是代理模式? 代理模式是java中的一种设计模式,它其实就是设置一个中间环节来代理你要...

  • Java的3种代理模式

    Java的代理模式简介 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对...

  • Android中的代理模式

    1.简介代理模式(Proxy Pattern)是GoF(Gang of Four) 23种Java常用设计模式之一...

网友评论

      本文标题:Java语言中代理模式简介(一)

      本文链接:https://www.haomeiwen.com/subject/zactsxtx.html