1 package Thread;
2
3 /*
4 * 静态代理模式
5 * 婚庆公司代理你搞结婚,你专注于结婚就行,吉他事交由公司处理。
6 * 真实对象和代理对象都要实现同一个接口
7 * 代理对象要代理真实角色
8 *
9 *
10 * */
11 public class StaticProxy {
12 public static void main(String[] args) {
13
14 WeddingCompany weddingCompany = new WeddingCompany(new You());
15 weddingCompany.happyMarry();
16 }
17 }
18
19 interface Marry {
20 void happyMarry();
21 }
22
23 //真实角色,你去结婚
24 class You implements Marry {
25 @Override
26 public void happyMarry() {
27 System.out.println("兰要出嫁了,不开心!");
28 }
29 }
30
31 //代理角色,帮助你结婚
32 class WeddingCompany implements Marry {
33 //代理谁-->真实目标角色
34 private Marry target;
35
36 public WeddingCompany(Marry target) {
37 this.target = target;
38 }
39
40 @Override
41 public void happyMarry() {
42 before();
43 this.target.happyMarry();//这就是真实对象
44 after();
45 }
46
47 private void before() {
48 System.out.println("结婚之前,布置现场");
49 }
50
51 private void after() {
52 System.out.println("结婚之后,收尾款");
53 }
54
55 }