一、代理(Proxy)模式简介

代理模式是结构型模式。

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

代理对象要继承于抽象主题,并控制原对象的引用

二、简单例子

抽象主题类

package proxy;
/*
* 抽象主题
*/
public abstract class Subject {
/*
* 请求方法
*/
abstract public void Request();
}

真实主题类,继承抽象

package proxy;
/*
* 真实主题
*/
public class RealSubject extends Subject { @Override
public void Request() {
System.out.println("真实主题实现请求!"); } }

代理主题

package proxy;
/*
* 代理主题
*/
public class ProxySubject extends Subject {
private RealSubject realSubject;
@Override
public void Request() {
//请求前代理主题自己的操作
preRequest();
//判断是否为空
if(realSubject==null){
//实例化
realSubject=new RealSubject();
}
//调用真实主题的响应方法
realSubject.Request();
//请求后代理主题自己的操作
postRequest();
}
private void preRequest(){
System.out.println("请求前代理主题自己的操作!");
} private void postRequest(){
System.out.println("请求后代理主题自己的操作!");
} }

测试类

package proxy;
/*
* 代理主题测试类
*/
public class Test { public static void main(String[] args) {
//声明抽象主题,并实例化为代理主题
Subject subject=new ProxySubject();
//调用代理主题的响应方法
subject.Request(); } }

结果:

请求前代理主题自己的操作!
真实主题实现请求!
请求后代理主题自己的操作!

代理(Proxy)模式简介的更多相关文章

  1. 代理(Proxy)模式简介

    Proxy 模式简介 代理模式的两个应用: 打开文档时加载大图片 例如:如果有个对象是一张很大的图片,而这张图片需要花费很长时间才能显示出来,那么当这个图片包含在文档中的后面时,使用编辑器或浏览器打开 ...

  2. 设计模式--代理(Proxy)模式

    在公司,经常性听到采购部的人说采购某样东材料,采购不了,需要通过代理商才可以.以前Insus.NET也做有一个练习<找人办事,代理设计模式(Proxy)>http://www.cnblog ...

  3. 代理(Proxy)模式

    代理模式的类图如下所示: 客户端想调用的是RealSubject,由于某种考虑或原因,只能直接访问到ProxySubject,再由ProxySubject去调用RealSubject,这就完成了一次代 ...

  4. 行为模式--代理Proxy模式(Java)

    代理(AOP切面的雏形): 题记:顾名思义就是将某件事,某个东西的使用权进行为让授权转移.代理相当于中介(不同于中介者模式),在原本操作的类之间添加了一个桥梁.但代理不能去修改原有目标.比如:一个人要 ...

  5. Android与设计模式——代理(Proxy)模式

    在阎宏博士的<JAVA与模式>一书中开头是这样描写叙述代理(Proxy)模式的: 代理模式是对象的结构模式.代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用. 代理模式 ...

  6. Java 实现代理(Proxy)模式

    类图 /** * 游戏者接口 * @author stone * */ public interface IGamePlayer { // 登录游戏 public void login(String ...

  7. 设计模式C++描述----13.代理(Proxy)模式

    一. 举例说明 我们有时打开一个网站时会发现有这样的现象,网站上的文字都显示出来了,但是上面的图片还没显示,要等一会才能显示. 这些未打开的图片的位置上,还是会有图片框和一些等待的信息的,这就是代理模 ...

  8. 十、设计模式之代理(Proxy)模式

    什么是代理模式 代理模式是对象的结构模式,为其他对象提供一种对象以控制对这个对象的访问. 代理模式的结构图如下:(源自大话设计模式)   Subject:定义了RealSubject和Proxy的公共 ...

  9. 漫谈设计模式(一):代理(Proxy)模式与适配器(Adapter)模式对比

    1.前言 为什么要将代理模式与适配器模式放在一起来说呢?因为它们有许多的共同点,当然也有一些不同的地方.首先两者都是属于结构型模式.结构型模型是这样定义的: 结构型模式涉及到如何组合类和类以获得更大的 ...

随机推荐

  1. php的哈希函数

    哈希函数: echo password_hash("rasmuslerdorf", PASSWORD_DEFAULT)."\n"; 验证函数: boolean  ...

  2. [Visual Studio] 重置默认设置 还原默认设置

    恢复默认设置的2种方法 如果VS出现问题或设置变乱,可以通过恢复默认设置使之回到安装成功时的状态,从而解决出现的问题.VS恢复默认设置的方法有2种,分别是:通过“导入和导出设置”实现和通过命令实现. ...

  3. apache上部署django的静态文件

    一直在优化自己博客的代码, 昨天把css样式表分离出来, 用作静态 文件, 但是自己还没学django怎么使用静态文件, 经过一番google 终于解决了. django 使用静态文件有两种方法, 一 ...

  4. 安装oracle 11gr2 rac on solaris

    http://candon123.blog.51cto.com/704299/389470

  5. C# 转换图形为PCX 格式

    2010-5-27 PCX RLE压缩图形的行对齐比.NET多了一位.已经修正了. 2009 -7-25 C# 转换图形为PCX 格式 增加了对1位色的PCX的读取 2009-6 -12 RLE数据压 ...

  6. 利用Spring MVC 上传图片文件

    本文转自:http://amcucn.iteye.com/blog/264457.感谢作者 近日在工作当中,需要用到上传图片的功能,然而自己平时学习的时候只会使用struts的上传功能,但因为项目并没 ...

  7. 每天进步一点点——论fork()函数与Linux中的多线程编程

    转载请说明出处:http://blog.csdn.net/cywosp/article/details/27316803 一.fork()函数     在操作系统的基本概念中进程是程序的一次运行,且是 ...

  8. Unity3d通用工具类之NGUI图集分解

    ---恢复内容开始--- Unity3d通用工具类之NGUI图集分解 由于最近需要一些美术资源吗,但是无奈自己不会制作UI,所以就打算去网上的项目中直接找几张可以使用的贴图资源. 但是发现这些资源已经 ...

  9. 借助 Resharper 和 StyleCop 让代码更整洁

    一:工具安装 Resharper 和 StyleCop 必须安装. Resharper 的配置文件如下:Resharper.zip 请按如下步骤导入, 1: 2: 3:   StyleCope 的配置 ...

  10. Objective-C:动态绑定

    // Complex.h // 03-动态绑定 // // Created by ma c on 15/8/11. // Copyright (c) 2015年. All rights reserve ...