`
kang
  • 浏览: 474361 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

结构模式之代理模式Proxy

阅读更多


 

应用场合举例:


代理服务器


缩略图一览显示和实际图片单张显示


授权机制

 

 

package com.javaeye.kang.proxy;

 

// 片代理,

// 代理

class ImageProxy {

      private ImageDisplay imageDisplay ;

      public ImageProxy(ImageDisplay imageDisplay) {

            this . imageDisplay = imageDisplay;

      }

      public void displayBreviaryImage() {

            System. out .println( " " );

      }

      // 击缩 的操作, 实际图

      public void pressMouse() {

            imageDisplay .displayFactImage();

      }

}

 

// 实际 工作

class ImageDisplay {

      //" 实际图 " 个操作很耗

      public void displayFactImage() {

            System. out .println( " 实际图 " );

      }

}

 

//

public class ProxyTest {

      public static void main(String[] args) {

            // 可以将 ImageDisplay 象注入(使用 spring

            ImageProxy imageProxy = new ImageProxy( new ImageDisplay());

            // 只是感 和代理 打交道

            imageProxy.displayBreviaryImage(); //

            imageProxy.pressMouse(); // 实际图

      }

}

 

测试结果:

 

实际图

 

 

改进,面向接口编程

 

/*

  * 代理模式

  * :面向接口

  */

// 片代理

class ImageProxy {

      private IImageDisplay iImageDisplay ;

      public ImageProxy(IImageDisplay iImageDisplay) {

            this . iImageDisplay = iImageDisplay;

      }

     

      public void displayBreviaryImage() {

            System. out .println( " " );

      }

      // 击缩 的操作, 实际图

      public void pressMouse() {

            iImageDisplay .displayFactImage();

      }

}

 

// 面向接口

interface IImageDisplay {

      public abstract void displayFactImage();

}

 

// 实际 工作

class ImageDisplay implements IImageDisplay {

      //" 实际图 " 个操作很耗

      public void displayFactImage() {

            System. out .println( " 实际图 " );

      }

}

 

//

public class ProxyTest {

      public static void main(String[] args) {

            // 可以将 ImageDisplay 象注入(使用 spring

            ImageProxy imageProxy = new ImageProxy( new ImageDisplay ());

            // 只是感 和代理 打交道

            imageProxy.displayBreviaryImage(); //

            imageProxy.pressMouse(); // 实际图

      }

}

 

 

 

  • 描述: 回顾
  • 大小: 27.1 KB
  • 描述: 代理模式 Proxy
  • 大小: 101.4 KB
  • 描述: Proxy小结
  • 大小: 94.4 KB
分享到:
评论

相关推荐

    结构型模式之代理模式(Proxy)

    代理模式是一种设计模式,属于结构型模式之一,其主要目的是为其他对象提供一个代理,以控制对该对象的访问。在实际应用中,代理模式能够帮助我们实现如下的功能: 1. 远程代理:代理对象可以代表一个位于远程系统...

    设计模式C++学习之代理模式(Proxy)

    代理模式是一种设计模式,它是结构型模式之一,主要用于在客户端和目标对象之间建立一个代理对象,以便控制对目标对象的访问。在C++中,代理模式可以用来为其他对象提供一种代理以控制对这个对象的访问,或者增加...

    设计模式之代理模式Proxy

    代理模式是设计模式中的一种结构型模式,它在对象交互中起到了中介的作用,允许通过代理对象来控制对原对象的访问。代理模式的核心思想是为一个对象提供一个替身,以便增加新的功能或者控制对原对象的访问。这种模式...

    c++-设计模式之代理模式(Proxy)

    代理模式(Proxy Pattern)是一种结构型设计模式,用于为其他对象提供一种代理以控制对这个对象的访问。代理模式通常用于保护、延迟加载、记录请求等场景,可以在不改变原有对象的情况下为其增加新的功能。 代理...

    Android设计模式之代理模式(Proxy Pattern)

    代理模式是设计模式的一种,它的主要目的是在不改变原有对象的基础上,为一个对象提供额外的功能或者控制对这个对象的访问。在Android开发中,代理模式的应用尤为常见,尤其在处理复杂的业务逻辑、网络请求、界面...

    C#面向对象设计模式纵横谈(13):Proxy 代理模式(结构型模式)

    ### C#面向对象设计模式纵横谈(13):Proxy 代理模式(结构型模式) #### 重要概念:代理模式 代理模式是一种常用的结构型设计模式,它通过为另一个对象提供一个代理,来控制对该对象的访问。这种模式在软件工程中...

    java 设计模式之代理模式(Proxy Pattern)实现代码及设计详解:动态代理模式、静态代理模式

    在这些模式中,代理模式(Proxy Pattern)是一种常用的结构型设计模式,它允许我们为一个对象创建一个代理,该代理对象在客户端和目标对象之间起到中介的作用,可以增加额外的功能或控制访问。 代理模式分为两种...

    C#面向对象设计模式纵横谈(13):Proxy 代理模式(结构型模式) (Level 300)

    本文将深入探讨C#中的一个关键设计模式——代理模式,它属于结构型模式的一种,适用于管理和控制对象的访问。我们将从概念、分类、实现方式以及实际应用等方面进行详细的讲解。 1. **代理模式概念**: 代理模式是一...

    代理模式 Proxy Pattern

    代理模式是一种结构型设计模式,它允许程序员为某对象创建一个代理对象来控制对该对象的访问。简单来说,就是在不修改原始类的基础上,通过引入代理对象来扩展类的行为或者控制对原始类的访问。这种模式在软件工程中...

    C#面向对象设计模式纵横谈\13 结构型模式Proxy代理模式.zip

    在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要资源... 这是第13节:结构型模式Proxy代理模式

    Java设计模式之代理模式(结构)

    其中,“代理模式”作为结构型设计模式之一,在解决特定问题方面表现出色。本文将详细介绍Java中的虚拟代理模式(Virtual Proxy),探讨其原理、应用场景以及实现方式。 #### 二、虚拟代理模式概述 虚拟代理模式是...

    代理模式java代码 Proxy(4)

    代理模式是一种设计模式,它允许我们为一个对象创建一个代理对象,这个代理对象在客户端和目标对象之间起到中介的作用,可以实现额外的功能,比如监控、权限控制、事务管理等,而客户端无需关心这些细节。...

    设计模式 之 “代理模式[Proxy Pattern]”

    **代理模式(Proxy Pattern)**是软件设计模式中的结构型模式之一,它在对象访问控制、增加额外功能或在客户端与目标对象之间提供一个中介等方面有广泛的应用。在代理模式中,代理类作为真实对象的代表,它持有真实...

    详解设计模式中的proxy代理模式及在Java程序中的实现

    代理模式是一种结构型设计模式,它创建了对象的一个代理以控制对这个对象的访问。代理对象在客户端和目标对象之间起到中介的作用,它可以添加额外的职责或者增强原有功能,同时不影响目标对象的原有行为。 2. **...

    设计模式之代理模式demo

    代理模式是一种常用的设计模式,它在软件开发中起到了中介或者代表的作用。代理模式的主要目的是为其他对象提供一种代理以控制对这个对象的访问。通过引入代理,我们可以增加新的功能,如缓存、日志记录、访问控制等...

    JAVA设计模式(创建模式 结构模式 行为模式)

    2. 代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问,可以用于远程代理、虚拟代理、保护代理等。 3. 桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地...

    C++设计模式课件15_Proxy_代理模式.pdf

    ### C++设计模式之代理模式详解 #### 一、引言 在软件开发过程中,设计模式作为一套被广泛接受的解决方案,为解决特定问题提供了一种标准的方法。本篇文章将聚焦于C++设计模式中的“代理模式”,通过深入剖析其原理...

Global site tag (gtag.js) - Google Analytics