代理模式定义:为其他对象提供一种代理以控制对这个对象的访问。
想在访问一个类时做一些控制时,可以使用代理模式。
以下代码演示代理模式简单的实际运用:
定义一个接口People:
package com.ldl.cn.ProxyModel;
public interface People {
void programming();
}
定义类JavaPeople实现People接口:
package com.ldl.cn.ProxyModel;
public class JavaPeople implements People{
private String demo;
public JavaPeople(String demo) {
super();
this.demo = demo;
}
@Override
public void programming() {
System.out.println("Programming "+demo);
}
}
定义代理类:
package com.ldl.cn.ProxyModel;
public class ProxyJavaPeople implements People{
private JavaPeople javapeople;
private String demo;
public ProxyJavaPeople(String demo) {
super();
this.demo = demo;
}
@Override
public void programming() {
if (javapeople == null) {
javapeople = new JavaPeople(demo);
}
javapeople.programming();
}
}
编写测试类:
package com.ldl.cn.ProxyModel;
public class TestProxyPattern {
public static void main(String[] args) {
People people = new ProxyJavaPeople("Java demo.");
people.programming();
}
}
运行结果:
Programming Java demo.