一、静态代理:增强行为
1、真实角色
2、代理角色+真实角色的引用
3、代理行为
要求实现相同的接口
1、接口,租赁行为
1 package com.wisezone.dailies; 2 3 /** 4 * 接口,租赁行为 5 * @author 王东海 6 * @2017年4月16日 7 */ 8 public interface Rent 9 { 10 /** 11 * 租赁 12 * void 13 */ 14 public void rent(); 15 }
2、真实角色类
1 package com.wisezone.dailies; 2 3 /** 4 * 真实角色类 5 * @author 王东海 6 * @2017年4月16日 7 */ 8 public class You implements Rent 9 { 10 11 @Override 12 public void rent() 13 { 14 System.out.println("收取房租,过过包租婆的日子"); 15 } 16 17 }
3、代理角色类
1 package com.wisezone.dailies; 2 3 /** 4 * 代理角色类 5 * 要有增强行为 6 * 并且具有真实角色 7 * @author 王东海 8 * @2017年4月16日 9 */ 10 public class Proxy implements Rent 11 { 12 13 private You you; 14 15 16 public Proxy(You you) 17 { 18 this.you = you; 19 } 20 21 //1.前期增强 22 public void before(){ 23 System.out.println("寻找租房客户..."); 24 25 } 26 27 //2.后期行为 28 public void after(){ 29 System.out.println("收取中介费...."); 30 31 } 32 33 @Override 34 public void rent() 35 { 36 before(); 37 you.rent();//真实角色的行为 38 after(); 39 } 40 41 }
4、测试结果
1 package com.wisezone.dailies; 2 3 public class TestProxy 4 { 5 public static void main(String[] args) 6 { 7 You you = new You(); 8 Proxy proxy = new Proxy(you); 9 proxy.rent(); 10 } 11 }
打印:
寻找租房客户...
收取房租,过过包租婆的日子
收取中介费....