代理:一个角色代表另一个角色来完成某些特定的功能,当我们需要在一个方法的前后添加逻辑的时候(日志,事务等)可以使用代理。
静态代理可以使用两种方式实现:一种是继承,一种是聚合。
1.定义接口Moveable
2.实现类Tank
3.在Tank的move方法前后添加时间日志(继承方式)或系统日志(聚合方式)
public interface Moveable {
void move();
}
//需要代理的对象
public class Tank implements Moveable{
public void move() {
System.out.println("tank move");
}
}
//第一种:以继承的方式实现静态代理,在方法前后添加逻辑
public class TimeProxy extends Tank{
@Override
public void move() {
System.out.println("timeProxy start...");
super.move();
System.out.println("timeProxy end...");
}
public static void main(String[] args) {
Moveable m = new TimeProxy();
m.move();//调用了代理后的方法。
}
}
//第二种:以聚合的方式实现代理类,为方法前后添加日志
public class LogProxy implements Moveable{
Moveable m;
public LogProxy(Moveable m) {
this.m = m;
}
public void move() {
System.out.println("move log start...");
m.move();
System.out.println("move log end...");
}
public static void main(String[] args) {
Moveable mm = new Tank();
mm = new LogProxy(mm);//这个代理类只能给Moveable接口的类进行代理,我们需要创建任意接口的代理类(动态代理)
mm.move();
}
}
分享到:
相关推荐
Java设计模式——代理设计模式(静态代理和动态代理) 各种情况例子源码
NULL 博文链接:https://871656094.iteye.com/blog/2355335
//代理模式内部引用了真实角色 public void requst() { this.preRequest(); //在真实角色操作之前所附加的操作 if(null == realsubject) { realsubject = new ReallSubject(); } realsubject.requst(); // ...
java设计模式【之】静态代理【源码】【场景:帮爸爸买菜】.rar * 代理模式 * 在开发者的角度来看,创建一个代理对象,提供给用户使用,避免用户直接访问真正的对象 * 在用户角度来看,就是普通的类方法调用 * ...
java 代理模式实现代码及设计详解:动态代理模式、静态代理模式
设计模式之代理模式_静态代理的一个java实现的demo。主类在Client中。仅代码实现,可供初学者参考使用
Java设计模式之代理模式 1.代理模式 1.1 静态代理 1.2 动态代理 1.3.代理模式使用原因和应用方面
静态代理设计模式1.1 静态代理 – 实现步骤1.2 静态代理 – 逻辑图 & 源码示例1.3 静态代理 – 优缺2. 装饰者设计模式 – 类似静态代理2.1 装饰者模式 – 实现步骤2.2 装饰者模式 – 逻辑图 & 源码示例2.3 装饰者...
Java中的代理是一种常见的设计模式,它可以帮助我们在不改变原有代码逻辑的情况下,对现有对象进行增强或扩展。在代理模式中,主要有两种类型:静态代理和动态代理。 1.静态代理: 静态代理是指在编译期间就已经确定...
本人的笔记,关于java基础中设计模式的内容 包括 1.作业回顾 2.内部类 2.1局部内部类 2.2静态内部类 2.3匿名内部类 3.设计模式 3.1单例模式 3.2代理模式 3.3观察者模式 3.4模板模式 4.练习
java设计模式【之】JDK动态代理【源码】【场景:帮爸爸买菜】.rar /** * 代理模式 * 在开发者的角度来看,创建一个代理对象,提供给用户使用,避免用户直接访问真正的对象 * 在用户角度来看,就是普通的类方法...
工厂方法: 在工厂方法设计模式中,工厂类不再负责产品的实列创建,而是将产品实例的创建交给抽象子类来 来负责创建。 c.抽象工厂:使用抽象工厂主要用于处理多产品族多级别产品的创建。 2.单例模式:确保有且只有...
设计模式之代理模式Java实现和类设计图,包括静态代理和动态代理
代理模式是常用的Java 设计模式,它的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个...
java静态代理设计模式,学习记录,简单自定义注解编写
资源列举了设计模式中的静态代理和动态代理的简单java实现,jdk1.8版本经过测试验证,对于想学习设计模式的童靴应该有所帮助
单例设计模式案例演示 单例模式,是一种常用的软件设计模式。通过单例模式可以保证系统中,**应用该模式的这个类只有一个实例**。即一个类只有一个对象实例。 #### 单例设计模式实现步骤 1. 将构造方法私有化,使其...
行为型特点:怎样合理的设计对象之间的交互通信,以及怎样合理的为对象分配职 结构型特点:主要用于处理类或对象的组合 Java jdk中使用了哪些设计模式 1.单例2.静态工厂3.工厂方法4.抽象工厂5.构造者6.原型7.适配器...
代理模式:是一种设计模式,提供了对目标对象的间接访问方式,即通过代理访问目标对象。如此便于在目标实现的基础上增加额外的功能操作,前拦截,后拦截等,以满足自身的业务需求,同时代理模式便于扩展目标对象功能...
- 静态代理 - 动态代理 - JDK 动态代理 - CGLIB 动态代理 - Javassist 代理 - ASM 代理 这篇文章我们来聊一下 Java 中的动态代理。 动态代理在 Java 中有着广泛的应用,比如 AOP 的实现原理、RPC远程调用、...