标签:adf test ring nts pat 实现 imp ati splay
代理模式:为某个对象提供一种代理以控制对这个对象的访问。(在某些情况下,一个对象不适合或者不能直接引用另一个对象,而“代理对象”可以在客户端和目标对象之间起到中介的作用)
代理模式作用: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(); } }
标签:adf test ring nts pat 实现 imp ati splay
原文地址:https://www.cnblogs.com/heibingtai/p/13889548.html