| 12
 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类中是本来的实现,那么用静态代理的方式就可以在不修改之前代码的情况下,对其功能进行增强。
 
 |