package designmode;
interface Subject { // 整个操作的核心主题
public void make();// 整个操作的核心功能
}
class RealSubject implements Subject {
public void make() {
System.out.println("核心主题正在操作!!!!!");
}
}
class ProxySubject implements Subject {
private Subject sub;
// 代理主题要接收一个真实主题的操作对象
public ProxySubject(Subject sub) {// 代理主题实为真实主题服务
this.sub = sub;
}
public void prepare() {
System.out.println("核心主题操作前的准备!");
}
public void make() {
this.prepare();// 代理准备
this.sub.make();// 代理调用真实主题开始进行
this.destroy();// 代理扫尾
}
public void destroy() {
System.out.println("核心主题操作后的收尾工作!");// destroy 销毁;
}
}
public class ProxyMode {
public static void main(String[] args) {
Subject sub = new ProxySubject(new RealSubject());
sub.make();// 输出:核心主题操作前的准备! 核心主题正在操作! 核心主题操作后的收尾工作!
}// 调用代理主题操作, 由代理主题操作调用真实主题, 代理完成比真实主题更多的操作(代理设计模式)
}
原文:https://www.cnblogs.com/Lovemeifyoudare/p/10381239.html