1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| //静态代理的一个简易理解实现,场景是dianedii结婚找了加婚庆公司...
//“婚庆公司”协助“我”实现“结婚”动作 public class StaticProxy { public static void main(String[] args) { MarryCompany marryCompany = new MarryCompany(new Person("你")); marryCompany.HappyMarry(); } } //结婚主角 class Person implements Marry { public String name;
public Person(String name) { this.name = name; }
@Override public void HappyMarry() { System.out.println(name+"要结婚啦!"); } } //结婚动作 interface Marry{ public void HappyMarry(); }
//婚庆公司 class MarryCompany implements Marry{ Marry target; public void before(){ System.out.println("结婚前筹措婚礼"); }
public void after(){ System.out.println("结婚后蜜月规划"); }
public MarryCompany(Marry target) { this.target = target; }
@Override public void HappyMarry() { before(); this.target.HappyMarry(); after(); } } //输出: //结婚前筹措婚礼 //你要结婚啦 //结婚后蜜月规划
//总结: //假如说Person类中是本来的实现,那么用静态代理的方式就可以在不修改之前代码的情况下,对其功能进行增强。
|