代理模式

原创 2016年06月01日 16:39:02

在设计模式中,一个类代表另一个类的功能,这样的设计模式称为结构型模式,在代理模式中,我们创建现有对象的对象,以便向外界提供功能接口。
主要解决直接访问对象时的问题,我们可以通过在访问此对象时添加一个访问层。一般想在访问一个类时做一些控制才会用到代理模式,而代理模式的关键就是代理类的组合。
UML类图:
这里写图片描述

java code:
public interface Image {
   void display();
}

 public class RealImage implements Image {

      private String fileName;

    public RealImage(String fileName)
    {
        this.fileName = fileName;
        loadFromDisk(fileName);
    }

    @Override
    public void display() {
        // TODO Auto-generated method stub
        System.out.println("Display::"+fileName);
    }
    private void loadFromDisk(String fileName)
    {
        System.out.println("Loading :"+fileName);
    }

}
public class ProxyImage implements Image{

    private RealImage realImage;  // 组合
    private String fileName;

     public ProxyImage(String  name)
     {
         this.fileName = name;
     }



    @Override
    public void display() {
        // TODO Auto-generated method stub

        if(realImage == null)
        {
            realImage = new RealImage(fileName);
        }
       realImage.display();
    }

}

public class ProxyPatternDemo {
public static void main(String[] args)
{

Image image = new ProxyImage("test_10bm.jpg");

image.display();

System.out.println(“”);

image.display();
}

}

运行结果:
这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

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个字)