23种设计模式之——代理模式
来源:互联网 发布:seo教程网 编辑:程序博客网 时间:2024/05/20 13:06
1.定义
Provide a surrogate or placeholder for another object to control access to it.
为其他对象提供一种代理以控制对这个对象的访问。
2.释义
● Subject抽象主题角色
抽象主题类可以是抽象类也可以是接口,是一个最普通的业务类型定义,无特殊要求。● RealSubject具体主题角色
也叫做被委托角色、被代理角色。它才是冤大头,是业务逻辑的具体执行者。● Proxy代理主题角色
也叫做委托类、代理类。它负责对真实角色的应用,把所有抽象主题类定义的方法限制委托给真实主题角色实现,并且在真实主题角色处理完毕前后做预处理和善后处理工作。
3.通用代码
抽象主题类:
public interface Subject { //定义一个方法 public void request();}
真实主题类:public class RealSubject implements Subject { //实现方法 public void request() { //业务逻辑处理 }}
代理类:public class Proxy implements Subject { //要代理哪个实现类 private Subject subject = null; //默认被代理者 public Proxy(){ this.subject = new Proxy(); } //通过构造函数传递代理者 public Proxy(Object...objects ){ } //实现接口中定义的方法 public void request() { this.before(); this.subject.request(); this.after(); } //预处理 private void before(){ //do something } //善后处理 private void after(){ //do something }}
4.优点
● 职责清晰
真实的角色就是实现实际的业务逻辑,不用关心其他非本职责的事务,通过后期的代理完成一件事务,附带的结果就是编程简洁清晰。
● 高扩展性
具体主题角色是随时都会发生变化的,只要它实现了接口,甭管它如何变化,都逃不脱如来佛的手掌(接口),那我们的代理类完全就可以在不做任何修改的情况下使用。
这只是简单的代理模式概念,复杂的是动态代理,spring 的 aop就是动态代理实现的,现在只是理解其思想和用法,自己实现还很难,以后还需要更深入的学习(●'◡'●)
阅读全文
0 0
- 23种设计模式之——代理模式
- 23种设计模式之代理模式
- 23种设计模式之代理模式
- 23种设计模式之代理模式
- 23种设计模式之代理模式
- 设计模式之——代理模式
- 设计模式之——代理模式
- 设计模式之——代理模式
- 设计模式之— 代理模式
- JAVA开发的23种设计模式之 — 装饰器模式 && 代理器模式
- 设计模式之——代理模式(静态代理)
- 设计模式之——代理模式(动态代理)
- 设计模式—代理模式
- 设计模式—代理模式
- 设计模式—代理模式
- 设计模式—代理模式
- 设计模式—代理模式
- 设计模式—代理模式
- vue环境搭建(有热替换)
- Bzoj 4922(字符串匹配新高度+DP)
- Codeforces Round #423 (Div. 1, rated, based on VK Cup Finals) E. Rusty String(fft)
- 判断元素出栈、入栈顺序的合法性
- 多态,抽象作业
- 23种设计模式之——代理模式
- 快速排序 递归调用
- jni访问java的属性和方法
- N的N次方的最高位
- 类和对象
- ListView和CheckBox实现全选,全不选和反选
- 文件内容读写的几种方式
- c++-关于菱形继承&虚继承的问题总结
- Java的基本数据类型和引用数据类型的区别