设计模式----代理模式通俗实例
2018-06-27 01:47
399 查看
代理和被代理实现同一个接口
package com.ij34.proxy; public interface ProxyPattern { /* 代理和被代理的共同点就是要实现同一个接口 */ public void eat(); public void sleep(); }
代理者女孩的母亲
package com.ij34.proxy; /* 代理类 */ public class GrilsMother implements ProxyPattern{ private ProxyPattern pp; public GrilsMother(ProxyPattern pp){ this.pp=pp; } @Override public void eat() { pp.eat(); } @Override public void sleep() { pp.sleep(); } }
被代理者女孩
package com.ij34.proxy; /* 被代理类 */ public class Gril implements ProxyPattern{ @Override public void eat() { System.out.println("我是girl,我在eat"); } @Override public void sleep() { System.out.println("我是girl,我在sleep"); } }
测试
package com.ij34.proxy; /* 测试代理,表面上写女孩女孩母亲吃饭睡觉,实际上写女孩吃饭睡觉 */ public class ProxyTest { public static void main(String[] args) { GrilsMother dm = new GrilsMother(new Gril()); dm.eat(); dm.sleep(); } }
测试结果
附:
Spring里代理模式,Spring AOP 利用了 AspectJ AOP实现的! AspectJ AOP 的底层用了动态代理
动态代理有两种
目标方法有接口时候自动选用 JDK 动态代理
目标方法没有接口时候选择 CGLib 动态代理
相关文章推荐
- Java使用设计模式中的代理模式构建项目的实例展示
- Objective-C之代理设计模式小实例
- 实例讲解如何在iOS应用开发中使用设计模式中的代理模式
- 结合项目实例 回顾传统设计模式(十一)代理模式
- C++设计模式编程中proxy代理模式的使用实例
- Net设计模式实例之代理模式(Proxy Pattern)
- 用最通俗的话说23种设计模式之代理模式
- 设计模式(二十一)-代理模式(Proxy Pattern)——只在必要时生成实例
- (转)用通俗的例子来理解代理设计模式
- Net设计模式实例之代理模式(Proxy Pattern) 推荐
- Java设计模式之静态代理模式实例分析
- Java设计模式之动态代理模式实例分析
- Java设计模式之代理模式与装饰模式实例详解
- Ruby使用设计模式中的代理模式与装饰模式的代码实例
- 设计模式之代理模式实例
- Java使用设计模式中的代理模式构建项目的实例展示
- 设计模式-深入理解各种代理模式(1)通俗代码版
- Python设计模式之代理模式实例
- 设计模式---代理模式 实例
- 设计模式----策略模式通俗实例