`
kang
  • 浏览: 465544 次
  • 性别: 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)

    2、代理模式(Proxy) 用意:为其它对象提供一种代理以控制对这个对象的访问

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

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

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

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

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

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

    代理模式java代码 Proxy(4)

    代理模式java代码 Proxy(4) 开发宝典......

    代理模式 Proxy Pattern

    在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。 在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。

    JAVA设计模式之结构模式

    这是JAVA设计模式中属于结构模式的部分,包括Flyweight(共享模式)、Bridge(桥模式)、Decorator(装饰模式)、Composite(组合模式)、Adapter(适配器模式)、Proxy(代理模式)、Facade (外观模式)的源代码。其中有些模式中...

    JAVA设计模式chm文档

    设计模式之Proxy(代理) 设计模式之Adapter(适配器) 设计模式之Composite(组合) 设计模式之Decorator(油漆工) 设计模式之Bridge 设计模式之Flyweight(享元) 行为模式: 设计模式之Template 设计模式之Memento(备忘机制...

    代理模式 C++实现

    代理模式(Proxy) 定义: 为其他对象提供一种代理以控制对这个对象的访问 结构: 由三部分组成 1.RealSubject(真实对象): 真正会调用到的对象 2.Proxy(代理对象): 代理真实对象的地方 3.Subject(共同点): 代理对象...

    C++设计模式编程中proxy代理模式的使用实例

    代理模式典型的结构图为: 实际上,代理模式的想法非常简单。 代理模式的实现: 完整代码示例(code):代理模式的实现很简单,这里为了方便初学者的学习和参考,将给出完整的实现代码(所有代码采用 C++实现,并...

    设计模式文档 chm

    设计模式之Proxy(代理) 设计模式之Adapter(适配器) 设计模式之Composite(组合) 设计模式之Decorator(油漆工) 设计模式之Bridge 设计模式之Flyweight(享元) 行为模式: 设计模式之Template 设计模式之Memento(备忘机制...

    Java 代理 代理模式 静态代理与动态代理 常见的动态代理实现 .md

    - 代理模式 - 静态代理与动态代理 - 常见的动态代理实现 - JDK Proxy - CGLIB - JDK Proxy 和 CGLIB 的对比 - 动态代理的实际应用 - Spring AOP 说在前面:今天我们来聊一聊 Java 中的代理,先来聊聊故事...

    GoF 23种设计模式的详解与应用

    结构模式:设计模式之Facade(外观),设计模式之Proxy(代理),设计模式之Adapter(适配器),设计模式之Composite(组合),设计模式之Decorator(油漆工),设计模式之Bridge,设计模式之Flyweight(享元). 行为模式:设计模式之...

    设计模式_代理模式.zip

    在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。 在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。 代理模式 java demo

    C#设计模式_设计模式_C#_

    代理模式(Proxy Pattern) 行为型: 13. 模板方法(Template Method) 14. 命令模式(Command Pattern) 15. 迭代器模式(Iterator Pattern) 16. 观察者模式(Observer Pattern) 17. 解释器模式(Interpreter Pattern) 18....

    C#面向对象设计模式纵横谈(视频与源码)

    C#面向对象设计模式纵横谈(13):Proxy 代理模式(结构型模式) C#面向对象设计模式纵横谈(14):Chain of Responsibility 职责链模式(行为型模式) C#面向对象设计模式纵横谈(15):(行为型模式) Command 命令模式 ...

    23种设计模式 (创建型,结构型,行为型)

    代理模式(Proxy Pattern) 13. 模板方法(Template Method) 14. 命令模式(Command Pattern) 15. 迭代器模式(Iterator Pattern) 行为型: 16. 观察者模式(Observer Pattern) 17. 解释器模式(Interpreter ...

    用Java实现23种设计模式

    代理模式(Proxy Pattern) 3. 行为型模式 责任链模式(Chain of Responsibility Pattern) 命令模式(Command Pattern) 解释器模式(Interpreter Pattern) 迭代器模式(Iterator Pattern) 中介者模式...

    Delphi模式编程第一分卷

    第15章 代理模式(Proxy) 15.1 模式解说 15.2 结构和用法 15.2.1 模式结构 15.2.2 代码模板 15.3 范例与实践 15.3.1 代理模式在数据库程序中的应用 15.3.2 范例小结 第四部分 行为型模式编程 第16章 责任...

Global site tag (gtag.js) - Google Analytics