/** * 被代理类(猫) */ public class Cat implements Action{ @Override public void eat(){ System.out.println("猫吃饭了!"); } }
/** * 静态代理需要自己写代理类-->代理类需要实现与目标对象相同的接口 */ public interface Action { //吃饭的动作 void eat(); }
/** * 代理类(铲屎官) --- 静态代理 */ public class ProxyDemo implements Action{ private Cat cat; public ProxyDemo(Cat cat){ this.cat = cat; } //透明代理 public ProxyDemo(){ this.cat = new Cat(); } public void clear(){ System.out.println("猫吃完了,要给它铲屎!"); } @Override public void eat(){ cat.eat(); clear(); } public static void main(String[] args) { //吃饭的猫 Cat cat = new Cat(); //受委托的猫 ProxyDemo proxyDemo = new ProxyDemo(cat); //猫让代理类(铲屎官)来铲屎 proxyDemo.eat(); //透明代理 ProxyDemo proxyDemo1 = new ProxyDemo(); proxyDemo.eat(); } }
原文:https://www.cnblogs.com/cat520/p/13096348.html