Structural Patterns Part 7/7: Proxy Pattern
2016-06-06 18:58
344 查看
Structural Patterns Part 7/7: Proxy Pattern
目录
Structural Patterns Part 77 Proxy Pattern目录
Definition
UML Class Diagram
Implementation
Definition
Proxy Pattern提供了一种控制Real Object的创建和访问的方式,它通常代替了Real Object的功能。一句话:
One class controls the creation of and access to objects in another class.
何时使用?一般当希望隐藏目标对象的创建和访问时(比如缓存),或者希望在访问目标对象时提供额外的逻辑(动态代理)。
使用频率:
Medium High
UML Class Diagram
Implementation
考虑一个对图片的访问,因为从磁盘读取非常耗时间,所以可以使用代理,把图片缓存起来。// Image.java package designpatterns.structuralpatterns.proxy; public interface Image { void display(); } // ImageImpl.java package designpatterns.structuralpatterns.proxy; class RealImage implements Image { private String filename; public RealImage(String filename) { this.filename = filename; loadFromDisk(filename); } @Override public void display() { System.out.println("Display Image: " + filename); } private void loadFromDisk(String filename) { System.out.println("Load from Disk: " + filename); } } class ProxyImage implements Image { private RealImage ri; private String filename; public ProxyImage(String filename) { this.filename = filename; } @Override public void display() { if(null == ri) { ri = new RealImage(filename); } ri.display(); } } // ProxyDemo.java package designpatterns.structuralpatterns.proxy; public class ProxyDemo { public static void main(String[] args) { Image image = new ProxyImage("ProxyPattern.jpg"); //image will be loaded from disk image.display(); System.out.println(); //image will not be loaded from disk image.display(); } } // output, image loaded only once Load from Disk: ProxyPattern.jpg Display Image: ProxyPattern.jpg Display Image: ProxyPattern.jpg
相关文章推荐
- PropertyChangeListener简单理解
- 什么是设计模式
- 设计模式之创建型模式 - 特别的变量问题
- 七、设计模式——装饰模式
- 设计模式总结
- 设计模式之创建型模式
- 浅谈设计模式的学习
- Ruby设计模式编程之适配器模式实战攻略
- 实例讲解Ruby使用设计模式中的装饰器模式的方法
- 设计模式中的模板方法模式在Ruby中的应用实例两则
- Ruby设计模式编程中对外观模式的应用实例分析
- 实例解析Ruby设计模式编程中Strategy策略模式的使用
- Ruby中使用设计模式中的简单工厂模式和工厂方法模式
- Ruby使用设计模式中的代理模式与装饰模式的代码实例
- 详解组合模式的结构及其在Ruby设计模式编程中的运用
- C# 设计模式系列教程-建造者模式
- C#编程中使用设计模式中的原型模式的实例讲解
- 使用设计模式中的工厂方法模式进行C#编程的示例讲解
- 实例解析C#设计模式编程中简单工厂模式的使用