结构型模式-代理模式
Posted heibingtai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结构型模式-代理模式相关的知识,希望对你有一定的参考价值。
代理模式:为某个对象提供一种代理以控制对这个对象的访问。(在某些情况下,一个对象不适合或者不能直接引用另一个对象,而“代理对象”可以在客户端和目标对象之间起到中介的作用)
代理模式作用:1. 隐藏被代理类的具体实现;
2.实现客户端与被代理类的解耦,在不改变被代理类代码的情况下添加一些额外(日志、权限等)功能。
简单使用:
//接口
public interface Image { void display(); }
//被代理类
public class RealImage implements Image { private String fileName; public RealImage(String fileName) { this.fileName = fileName; loadFromDisk(fileName); } private void loadFromDisk(String fileName) { System.out.println("Loading " + fileName); } @Override public void display() { System.out.println("Displaying " + fileName); } }
//代理类
public class ProxyImage implements Image { private RealImage realImage; private String fileName; public ProxyImage(String fileName) { this.fileName = fileName; } @Override public void display() { if (realImage == null) { realImage = new RealImage(fileName); } realImage.display(); } }
//测试
public class ProxyPatternDemo { public static void main(String[] args) { Image image = new ProxyImage("test_img.jpg"); image.display(); System.out.println(); image.display(); } }
以上是关于结构型模式-代理模式的主要内容,如果未能解决你的问题,请参考以下文章