装饰模式和代理模式的区别

简介: 装饰模式和代理模式的区别

正文


最近在学习设计模式,学着学着,感觉装饰模式和代理模式非常的相似,于是在网上深入的学习了一下,找出了他们之间的区别。

  • 让别人做你不关心的事情:代理模式
  • 为让自己的能力增强,使得增强后的自己能够使用更多的方法,拓展在自己基础之上的功能的:装饰模式

1、装饰器模式强调的是增强自身,在被装饰之后你能够在被增强的类上使用增强后的功能。增强后你还是你,只不过能力更强了而已;代理模式强调要让别人帮你去做一些本身与你业务没有太多关系的职责(记录日志、设置缓存)。代理模式是为了实现对象的控制,因为被代理的对象往往难以直接获得或者是其内部不想暴露出来。

2、装饰模式是以对客户端透明的方式扩展对象的功能,是继承方案的一个替代方案;代理模式则是给一个对象提供一个代理对象,并由代理对象来控制对原有对象的引用;

3、装饰模式是为装饰的对象增强功能;而代理模式对代理的对象施加控制,但不对对象本身的功能进行增强;

相关文章
|
Linux C语言 C++
现代c++中实现精确延时方法总结
现代c++中实现精确延时方法总结
|
8月前
|
机器学习/深度学习 自然语言处理 搜索推荐
探秘 DeepSeek R1 模型:跨越多领域的科技奇迹,引领智能应用新浪潮
探秘 DeepSeek R1 模型:跨越多领域的科技奇迹,引领智能应用新浪潮
|
编解码 前端开发 JavaScript
.NET_web前端框架_layui_栅格布局
【8月更文挑战第27天】
192 4
|
人工智能 自然语言处理 前端开发
关于ToB垂直领域大模型的一点探索和尝试
本文分享了物流技术团队在垂直领域大模型开发和部署过程中的技术细节、挑战解决策略以及实际应用案例。
|
SQL 关系型数据库 数据库
在 Postgres 中使用 Exists
【8月更文挑战第11天】
309 0
|
API
超级炫酷个人引导页自适应HTML源码
超级炫酷个人引导页自适应HTML源码
178 3
超级炫酷个人引导页自适应HTML源码
|
传感器 算法 数据可视化
IMU模块中的一些基本概念和常见问题
IMU模块中的一些基本概念和常见问题
IMU模块中的一些基本概念和常见问题
|
JavaScript 视频直播
【视频直播篇四】vue-cli3集成flv.js
本文着重介绍vue-cli3集成flv.js
451 0
|
前端开发 关系型数据库 MySQL
开源测试平台横向测评系列『流马』篇:流马部署
【简介篇】 • 项目概述:技术栈、工作原理 • 项目功能简介:功能特点 【部署篇】 • 部署规划 • 依赖环境部署(JDK、MySQ、NGINX、Git、NodeJS、Python3) • 代码打包:克隆项目、前端代码打包、后端代码打包 • 项目部署:前端部署、后端部署、执行引擎部署
开源测试平台横向测评系列『流马』篇:流马部署