码农知识堂 - 1000bd
Python
PHP
JS/TS
JAVA
C/C++
C#
GO
Kotlin
Swift
Proxy-静态代理
代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问
为了保持行为的一致性,代理类和委托类
通常会实现相同的接口
,所以在访问者看来两者没有丝毫的区别
通过代理类这中间一层,能
有效控制对委托类对象的直接访问
,也可以很好地
隐藏和保护委托类对象
,同时也为实施不同控制策略预留了空间,从而在设计上获得了更大的
灵活性
更通俗的说,代理解决的问题当两个类需要通信时,引入第三方代理类,将两个类的关系解耦,让我们只了解代理类即可,而且代理的出现还可以让我们完成与另一个类之间的关系的统一管理
但是切记,代理类和委托类要实现相同的接口,因为代理真正调用的还是委托类的方法
按照代理的创建时期,代理类可以分为两种:
静态:由程序员创建代理类或特定工具自动生成源代码再对其编译;在程序运行前代理类的.class文件就已经存在了
动态:在程序运行时运用反射机制动态创建而成
静态代理原则:
1.代理类和委托类实现同样的接口
2.在代理类中传入委托类的引用
3.代理类要实现的功能,可以增强,也可以不增强
这个原则看起来与装饰者模式很像,但实际上目的是不同的
相同:
(1)都要实现与目标类相同的接口
(2)在类中都要声明增强目标对象
(3)都可以在不修改目标类的前提下增强目标方法
不同:
(1)装饰者模式主要是为了是为了增强目标方法
(2)静态代理是为了隐藏原始对象,增强不是关键,隐藏才是关键
当实际开发中有很多这样的主题接口和类需要功能增强时,就需要更多的代理类,即每一个主题接口都得创建一个代理类,会造成代码的繁多和冗余,因此就产生了动态代理技术
相关阅读:
彩虹女神跃长空,Go语言进阶之Go语言高性能Web框架Iris项目实战-项目结构优化EP05
Linux shell 重定向输入和输出
Docker容器技术
FTPS 227 Entering Passive Mode
Git详细介绍与SSH链接远程仓库
java基础03
04_SpingBoot 前端使用JSP
Android-Firebase快速解决合规问题,延迟Firebase初始化
nodejs+vue 高校社团综合服务系统elementui
期货权益可用资金(期货的权益和可用资金)
原文地址:https://blog.csdn.net/weixin_59624686/article/details/126941696
最新文章
攻防演习之三天拿下官网站群
数据安全治理学习——前期安全规划和安全管理体系建设
企业安全 | 企业内一次钓鱼演练准备过程
内网渗透测试 | Kerberos协议及其部分攻击手法
0day的产生 | 不懂代码的"代码审计"
安装scrcpy-client模块av模块异常,环境问题解决方案
leetcode hot100【LeetCode 279. 完全平方数】java实现
OpenWrt下安装Mosquitto
AnatoMask论文汇总
【AI日记】24.11.01 LangChain、openai api和github copilot
热门文章
十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
奉劝各位学弟学妹们,该打造你的技术影响力了!
五年了,我在 CSDN 的两个一百万。
Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
面试官都震惊,你这网络基础可以啊!
你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
心情不好的时候,用 Python 画棵樱花树送给自己吧
通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
13 万字 C 语言从入门到精通保姆级教程2021 年版
10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系
2656653265@qq.com
京ICP备2022015340号-1
正则表达式工具
cron表达式工具
密码生成工具
京公网安备 11010502049817号