代理模式

原创 2013年12月04日 09:50:45

代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用

 

在代理模式中的角色:

抽象对象角色:声明了目标对象和代理对象的共同接口,这样一来在任何可以使用目标对象的地方都可以使用代理对象。

目标对象角色:定义了代理对象所代表的目标对象。

代理对象角色:代理对象内部含有目标对象的引用,从而可以在任何时候操作目标对象;代理对象提供一个与目标对象相同的接口,以便可以在任何时候替代目标对象。代理对象通常在客户端调用传递给目标对象之前或之后,执行某个操作,而不是单纯地将调用传递给目标对象。

 

 

抽象对象角色

public abstract class AbstractObject {
    //操作
    public abstract void operation();
}

 

目标对象角色

public class RealObject extends AbstractObject {
    @Override
    public void operation() {
        //一些操作
        System.out.println("一些操作");
    }
}

 

代理对象角色

public class ProxyObject extends AbstractObject{
    RealObject realObject = new RealObject();
    @Override
    public void operation() {
        //调用目标对象之前可以做相关操作
        System.out.println("before");        
        realObject.operation();        
        //调用目标对象之后可以做相关操作
        System.out.println("after");
    }
}

 

测试

public class Client {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        AbstractObject obj = new ProxyObject();
        obj.operation();
    }

}

 

 

  • 大小: 21.9 KB

相关文章推荐

Java中三种代理模式源码+文档

  • 2017年11月01日 09:58
  • 1.11MB
  • 下载

java代理模式

  • 2014年05月20日 09:40
  • 59KB
  • 下载

使用自动生成java文件和自动编译的动态代理模式

/* * 接口中有几个方法,那么使用反射的getMethods()就会有几个方法名 * 因为接口是不会继承Object的 */ public interface Moveable { void...

代理模式小案例

  • 2017年07月26日 15:24
  • 4KB
  • 下载

详述 IOS 之代理模式(Objective-c)

1. 什么是代理模式? 代理模式是在 IOS 中经常遇到的一种设计模式,那什么叫做代理模式呢? 举个例子:有一个婴儿,他本身不会自己吃饭和洗澡等等一些事情,于是婴儿就请了一个保姆,于是婴儿和...

java中的三种代理模式

  • 2017年05月03日 19:35
  • 7.39MB
  • 下载

代理模式Demo

  • 2017年05月31日 15:03
  • 22.37MB
  • 下载

代理模式以及多线程的简单使用

什么是代理? Delegation is a simple and powerful pattern in which one object in a program acts on behalf ...

Java 静态代理模式

  • 2017年07月02日 19:40
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:代理模式
举报原因:
原因补充:

(最多只允许输入30个字)