个人理解:
代理模式就是隐藏真正的对象,用代理对象进行操作,具体的操作就是
- 真正的操作对象和代理对象实现同一接口;
- 操作对象正常工作,代理对象里面建立操作对象的实例;
- 客户端只需要创建代理对象并且传递所需要参数即可
以下一个最简单例子,打印传进去字符串。
首先是被实现的接口,
public interface print {
public void printSTring();
}
接下来是工作类,假如为A,他的工作就是打印传进来的类,
public class A implements print{
String str;
public A(String str) {
super();
this.str = str;
}
public void printSTring() {
System.out.println(str);
}
}
接下来是他的代理类,
public class ProxyA implements print{
private A a;
public ProxyA(String str) {
a=new A(str);
}
public void printSTring() {
a.printSTring();
}
}
最后在客户端看一下,
public class test {
public static void main(String[] args) {
ProxyA p=new ProxyA("我是被打印的字符串");
p.printSTring();
}
}
这就是完整的工作流程。
在客户端完全隐藏了A,只有他的代理ProxyA.。
这个有什么好处呢,我也不知道等以后发现他的好处再来补上。