代理模式
①接口
package j;
//接口描述了对外提供的功能
public interface Subject {
//代理对象对外宣传的功能
void work();
}
②目标对象
package j;
//目标对象
public class RealSubject implements Subject {
//实际的工作
public void work() {
System.out.println("拍摄广告");
}
}
③代理对象
package j;
//代理对象,它将实际工作委托给目标对象完成
public class Proxy implements Subject {
//代理对象持有对目标对象的引用
private Subject subject;
public Proxy(Subject subject) {
super();
this.subject = subject;
}
//周边工作
public void work() {
System.out.println("谈合同");
//将实际工作委托给目标对象完成
subject.work();
//完成后置工作
System.out.println("付款问题");
}
}
④执行
package j;
public class day1404 {
public static void main(String[] args) {
//创建目标对象
RealSubject realsubject =new RealSubject();
//创建代理对象
Proxy proxy =new Proxy(realsubject);
//代理完成工作
proxy.work();
}
}
⑤补充: