代理模式(Proxy) 静态
代理模式分为静态和动态代理
由程序员创建或工具生成代理类的源码,再编译代理类。所谓静态也就是在程序运行前就已经存在代理类的字节码文件,代理类和委托类的关系在运行前就确定了。
所以说静态代理,主要是自己写代理子类。比如:
有一个图书接口:
public interface Book{void read(String name); }
一个图书实现类:
public class BookImpl implement Book{@Overridepublic void read(String name){System.out.printIn("阅读"+name);} }
一个图书代理类:
public class BookProxy implement Book{private Book bookImpl;public BookProxy(Book bookImpl){this.bookImpl = bookImpl;}@Overridepublic void read(String name){//这里就可以做自己要做的事,比如代理方法之前做什么 bookImpl.read(name);//代理方法之后做什么 } }
main方法测试
public class Main{public static void main(String[] args){Book bookImpl = new BookImpl();Book proxy = new BookProxy(bookImpl);proxy.read("aaa"); } }
静态代理类优缺点
- 优点:
- 业务类只需要关注业务逻辑本身,保证了业务类的重用性。这是代理的共有优点。
- 缺点:
- 代理对象的一个接口只服务于一种类型的对象,如果要代理的方法很多,势必要为每一种方法都进行代理,静态代理在程序规模稍大时就无法胜任了。
- 如果接口增加一个方法,除了所有实现类需要实现这个方法外,所有代理类也需要实现此方法。增加了代码维护的复杂度。
转载于:https://www.cnblogs.com/LixiaoFeng1650062546/p/11474103.html
代理模式(Proxy) 静态相关推荐
- 二十三种设计模式(第十二种)-----代理模式(Proxy)
二十三种设计模式(第十二种)-----代理模式(Proxy) 尚硅谷视频连接https://www.bilibili.com/video/BV1G4411c7N4?from=search&se ...
- 代理模式Proxy (非常容易看懂)
代理模式有静态代理模式和动态代理模式 1.静态代理模式: 这个例子举得太好了:助理可以做其他事情:预定时间,场地,最后结算费用,但是唱歌的话只能由歌手华仔本人来 总共有三个类,调用类,代理类,被代理 ...
- [Java] 代理模式 Proxy Mode
[Java] 代理模式 Proxy Mode 文章目录 [Java] 代理模式 Proxy Mode 1. 代理思想 2.java.lang.reflect.Proxy类 2.1 利用反射创建prox ...
- 代理模式之---静态代理
代理模式之-静态代理 代理模式:为一个对象提供一个替身,以控制对这个对象的访问.即通过代理对象访问目标对象,这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 被代 ...
- 一文彻底搞懂代理模式(Proxy)
代理模式 引言 代理模式的定义与特点 代理模式的结构 模式实现 静态代理 动态代理 总结 与装饰者模式 文章已收录我的仓库:Java学习笔记与免费书籍分享 代理模式 引言 代理模式是非常常见的模式,在 ...
- 【Java】代理模式(静态代理动态代理)
CONTENT 代理模式 静态代理 动态代理 JDK 动态代理(基于接口) CGLIB 动态代理(基于类继承) JDK 动态代理 v.s. CGLIB 动态代理 JDK 动态代理为什么必须基于接口 R ...
- 23种设计模式7_代理模式之一静态代理
23种设计模式7_代理模式之一静态代理 1 基本介绍 代理模式:为其他对象提供一种代理以控制对这个对象的访问 代理模式也叫委托模式,它是一项基本设计技巧.许多其他的模式,如状态模式.策略模式.访问者模 ...
- 设计模式-代理模式(Proxy Pattern)
设计模式-代理模式(Proxy Pattern) 文章目录 设计模式-代理模式(Proxy Pattern) 一.定义 二.概念解释 三.场景 四.实现 1.类图 2.代码实现 五.小结 六.动态代理 ...
- 设计模式-代理模式(静态代理、动态代理、cglib代理)
文章目录 代理模式 静态代理 动态代理 cglib代理 应用 代理模式 代理模式(Proxy Pattern)是一种结构性模式.代理模式为一个对象提供了一个替身,以控制对这个对象的访问.即通过代理对象 ...
最新文章
- Oracle PLSQL 导出数据table xx contains one or more CLOB columns 解决方案
- asp.net 获取 当前日期时间 及 前后N天日期时间(DropDownList数据绑定)
- java 内存泄露对象排查_记录一次 java内存泄漏的排查
- 【LaTeX】E喵的LaTeX新手入门教程(6)中文
- skywalking链路追踪在微服务架构中的使用
- listview侧滑删除
- mxnet系列教程之1-第一个例子
- 什么是JavaScript中的回调函数?
- 90后程序员代码漏洞更多?
- 07-windows下Elasticsearch安装-elasticsearch-service服务
- oracle10G分区的创建与维护Oracle分区表和本地索引
- 面向对象进阶4:软件开发规范
- Django tips: 查看当前Request所执行的所有SQL
- linux firefox 解雇ie,Fire IE
- 计算机大赛教学辅助课件,职业教育:机械类一等奖作品《识读组合体视图教学辅助》PPT课件.ppt...
- 最新好用的服装零售进销存软件排行榜
- webp格式以及工具介绍
- 基于socket的即时通信系统的设计与实现
- 高德地图API的一些使用心得
- 2010年研究生答案Q278046046
热门文章
- python 切换环境_python多环境切换及pyenv使用过程详解
- 电脑开机卡住了怎么办_苹果电脑忘记开机密码怎么办?一段代码轻松解决
- linux 获取网站预览图,Shell脚本实现获取网页快照并生成缩略图 -电脑资料
- jsp中提供的四种属性范围
- 首次将项目从eclipse提交到服务器的SVN
- zTree动态添加节点
- springboot读取linux文件_SpringBoot 读取文件代码模版
- python中seaborn库_GitHub - a13544835729/python-seaborn: python seaborn库基础用法
- 计算机学硕考研复试编程能力,苏州大学计算机学硕专业考研复试真题
- .net 本地文件管理 代码_Gitee 在线解决代码冲突上线,解决冲突不再需要 Git 命令...