1 package Thread; 2 3 4 public class StaticProxy{ 5 public static void main(String[] args){ 6 //创建真实角色 7 Marry you =new You(); 8 //创建第阿里角色+真实角色的引用 9 WeddingCompany company = new WeddingCompany(you); 10 company.marry(); 11 } 12 } 13 //接口 14 interface Marry{ 15 public abstract void marry(); 16 } 17 //真实角色 18 class You implements Marry{ 19 public void marry(){ 20 System.out.println("you and 嫦娥结婚了....."); 21 } 22 } 23 //代理角色 24 class WeddingCompany implements Marry{ 25 private Marry you; 26 public WeddingCompany(){ 27 28 } 29 public WeddingCompany(Marry you){ 30 this.you=you; 31 } 32 private void before(){ 33 System.out.println("布置猪窝...."); 34 } 35 private void after(){ 36 System.out.println("闹玉兔....."); 37 38 } 39 public void marry(){ 40 before(); 41 you.marry(); 42 after(); 43 } 44 }
总结:
1.真实角色和代理角色都继承自同一接口(实现接口中的方法)
2.代理角色持又真实角色的引用
3.代理做代理的事,我做我的事