代理模式粗浅理解
在不修改源代码的情况下,对原有的业务逻辑进行增强或修改。
步骤:
一、创建主题接口,确定必须要有的功能
二、创建被代理的实现类,并设计好核心方法,其余非主要方法的方法体设计为空;
三、创建代理类,必须有一个主题接口类型的属性。提供这个属性的set方法,或者在构造器中为主题属性实例化。
四、
① 创建被代理类对象
② 创建代理类对象,在构造器中传入第①步创建的被代理类对象。
④ 通过代理类对象执行主题方法。
五、 相关代码
1 //测试 2 public class ProxyTest { 3 public static void main(String[] args) { 4 IsMe me = new IsMe(); 5 Life robot = new Robot(me); 6 robot.eat(); 7 } 8 } 9 10 //接口 11 interface Life { 12 void eat(); 13 } 14 15 //被代理类 16 class IsMe implements Life { 17 18 @Override 19 public void eat() { 20 System.out.println("我只知道吃饭"); 21 } 22 23 } 24 25 //代理类 26 class Robot implements Life { 27 28 private Life life;// 主题接口属性 29 30 public Robot(Life life) { 31 this.life = life; 32 } 33 34 @Override 35 public void eat() { 36 before(); //在原有逻辑的前后都加上新的逻辑,且不修改源代码 37 life.eat(); 38 after(); 39 } 40 41 private void before() { 42 System.out.println("机器人帮我洗漱"); 43 } 44 45 private void after() { 46 System.out.println("机器人帮我刷碗"); 47 } 48 49 }

浙公网安备 33010602011771号