代理模式有较委托模式, 就是委托人委托代理做什么事情。
代理模式分静态和动态两种。 先讲静态的, 这个比较简单。
我们以“幕后黑手雇职业杀手+枪杀钉子户” 为场景来介绍。
客户端代码
public class Client {
public static void main(String[] args) {
// 幕后黑手想干掉"钉子户"
Killer manipulator = new Manipulator();
// 职业杀手出场
Killer hitman = new Hitman(manipulator);
// 杀手行动
hitman.setTarget("钉子户");
hitman.kill();
}
}
执行结果:
引用
钉子户 已经被锁定
钉子户 被干掉了
先来看看基本接口, 也就是要做什么
public interface Killer {
void setTarget(String target);
void kill();
}
然后就是两个具体的实现: 幕后黑手 + 职业杀手
public class Manipulator implements Killer {
private String target;
@Override
public void setTarget(String target) {
this.target = target;
System.out.println(target + " 已经被锁定");
}
@Override
public void kill() {
System.out.println(target + " 被干掉了");
}
}
public class Hitman implements Killer {
private Killer killer;
public Hitman(Killer killer) {
this.killer = killer;
}
@Override
public void setTarget(String target) {
killer.setTarget(target);
}
@Override
public void kill() {
killer.kill();
}
}
毛简单吧, 哈哈。
分享到:
相关推荐
Java中的代理模式--静态代理和动态代理 Java中的代理模式--静态代理和动态代理
动态代理的代码例子 里面敲好了注释 搭配文章观看更好
- 代理模式 - 静态代理与动态代理 - 常见的动态代理实现 - JDK Proxy - CGLIB - JDK Proxy 和 CGLIB 的对比 - 动态代理的实际应用 - Spring AOP 说在前面:今天我们来聊一聊 Java 中的代理,先来聊聊故事...
│ 北京动力节点SSH前言-007-代理模式-静态代理与动态代理.mp4 │ 北京动力节点SSH前言-008-代理模式-静态代理测试环境的搭建.mp4 │ 北京动力节点SSH前言-009-代理模式-解决快捷键冲突问题.mp4 │ 北京动力节点SSH...
自己编写的代理设计模式,示例中的代码绝对没有使用伪代码,是开发的项目真实案例,简单易懂
- 代理模式 - 静态代理 - 动态代理 - JDK 动态代理 - CGLIB 动态代理 - Javassist 代理 - ASM 代理 这篇文章我们来聊一下 Java 中的动态代理。 动态代理在 Java 中有着广泛的应用,比如 AOP 的实现原理、...
设计模式之代理模式_静态代理的一个java实现的demo。主类在Client中。仅代码实现,可供初学者参考使用
Java设计模式——代理设计模式(静态代理和动态代理) 各种情况例子源码
Java编程模式-代理模式。介绍了静态代理模式和动态代理模式
Java各种代理模式以及AOP的实现代码 : 1.AspectJ - 静态代理 2. 动态代理 (1)JDK动态代理 (2)CGlib代理
NULL 博文链接:https://skyuck.iteye.com/blog/524561
java 代理模式实现代码及设计详解:动态代理模式、静态代理模式
静态代理模式静态代理模式
NULL 博文链接:https://coolszy.iteye.com/blog/523105
Java 动态代理详解(代理模式+静态代理+JDK动态代理+CGLIB动态代理)
Java 代理模式: 详见:http://blog.csdn.net/q610098308/article/details/74144046
//代理模式内部引用了真实角色 public void requst() { this.preRequest(); //在真实角色操作之前所附加的操作 if(null == realsubject) { realsubject = new ReallSubject(); } realsubject.requst(); // ...
NULL 博文链接:https://871656094.iteye.com/blog/2355335
该压缩文件是Java工程,用于研究静态代理,详细博客:https://gaohuanjie.blog.csdn.net/article/details/89044697