代理模式的定义:给某一个对象提供一个代理,并由代理对象控制对原对象的引用。
2、RealSubject:真实主题角色,是实现抽象主题接口的类。
角色:
1、ISubject:抽象主题角色,是一个接口。该接口是对象和它的代理共用的接口。2、RealSubject:真实主题角色,是实现抽象主题接口的类。
3、Proxy:代理角色,内部含有对真实对象RealSubject的引用,从而可以操作真实对象。
图片来自网络:
//共同抽象接口
public interface Isubject{
public void doSomething();
}
//真实主题角色,是实现抽象主题接口的类
public class RealSubject implements Isubject{
public void doSomething() {
System.out.println("doSomething");
}
}
//代理角色
public class Proxy implements Isubject{
private RealSubject realSubject;
public Proxy(){
super();
this.realSubject=new Proxy();
}
public void doSomething(){
otherThing();
realSubject.doSomething();
//...
}
private void otherThing(){
}
}
public class Test {
public static void main(String[] args) {
Isubject subject = new Proxy();
subject.doSomething();
}
}