代理模式

原创 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();
}

}

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

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

浅析JavaScript设计模式——代理模式

代理模式 为一个对象提供一个代用品或占位符,以便控制对它的访问 好久没有写设计模式的文章了 今天要写的代理模式可能内容要多一些 代理模式非常有用,代理模式也分为很多很多种,我只谈一些常见并且...
  • q1056843325
  • q1056843325
  • 2016年11月17日 20:33
  • 1024

状态模式--策略模式--代理模式

状态模式:意图:   允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。适用性:   在下面的两种情况下均可使用 S t a t e模式:   • 一个对象的行为取决于它的...
  • lonewolf521125
  • lonewolf521125
  • 2015年05月19日 11:43
  • 908

代理模式的简单例子

【代理模式应用场景举例】比如在玩“极品飞车”这款游戏,如果游戏者手中的金钱达到了一定的数量就可以到车店买一部性能更高的赛车,那么这个卖车的“车店”就是一个典型的“汽车厂家”的“代理”,他为汽车厂家“提...
  • lishaojun0115
  • lishaojun0115
  • 2016年02月26日 11:51
  • 1682

谈谈JAVA的代理模式认识 一——为什么使用代理模式

一、中介隔离作用     代理模式,第一次接触它,是在学习.Net的时候看的一本书,叫做《大话设计模式》,至今已快三年了。相信看过这本书的同学们,都记得书中的代理模式,就是为他人做嫁衣裳的故事。好,我...
  • wangyongxia921
  • wangyongxia921
  • 2015年05月28日 16:24
  • 21895

【学习笔记javascript设计模式与开发实践(代理模式)----6】

第6章代理模式  代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。 代理模式是一种非常有意义的模式,在生活中可以找到很多代理模式的场景。比如明星都有经济人作为代理。如果想请明星来办一场...
  • pigpigpig4587
  • pigpigpig4587
  • 2015年12月16日 17:07
  • 1115

Android设计模式之代理模式 Proxy

一.概述 代理模式也是平时比较常用的设计模式之一,代理模式其实就是提供了一个新的对象,实现了对真实对象的操作,或成为真实对象的替身.在日常生活中也是很常见的.例如A要租房,为了省麻烦A...
  • l2show
  • l2show
  • 2015年07月28日 22:14
  • 20609

代理模式与Android

代理模式(Proxy)一、   什么是代理模式先来看看官方的说法,代理模式就是为其他对象提供一种代理,以控制对这个对象的访问。 看来这个官方的说法的确有点官方,看了还是让人感觉不点不知所措,还是不明白...
  • ljianhui
  • ljianhui
  • 2014年06月09日 00:25
  • 8160

代理模式与策略模式的区别!

代理模式与策略模式有一些类似的地方,比如: 策略者可以根据策略不同,执行不同的策略方法; 代理人可以被代理对象的不同,执行不同的被代理人的方法; 似乎用代码很难表达清楚二者有什么区别,那就用一种场...
  • rubbishcan
  • rubbishcan
  • 2013年12月20日 15:02
  • 2267

JAVA设计模式之代理模式

【代理模式应用场景举例】 比如在玩“极品飞车”这款游戏,如果游戏者手中的金钱达到了一定的数量就可以到车店买一部性能更高的赛车,那么这个卖车的“车店”就是一个典型的“汽车厂家”的“代理”,他为汽车厂家...
  • jason0539
  • jason0539
  • 2014年04月05日 07:07
  • 23472

代理模式使用场合与注意事项

代理 模式的定义:      为其它对象提供一种代理以控制这个对象的访问--《设计模式》GOF 注意事项: 1. 接口并不是必须的,大多数情况下,我们为了保持对对象操作的透明性,并强制实现类实现代理类...
  • dzta831121
  • dzta831121
  • 2015年11月17日 16:50
  • 618
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:代理模式
举报原因:
原因补充:

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