当前位置: 首页 > news >正文

23种设计模式在SpringCloud源码里的应用

  1. 单例模式(Singleton):Spring 中的 Bean 默认都是单例模式,保证在整个应用中只有一个实例。

  2. 工厂方法模式(Factory Method):Spring 中的 BeanFactory 和 ApplicationContext 都实现了工厂方法模式,通过工厂方法获取 Bean 实例。

  3. 抽象工厂模式(Abstract Factory):Spring 中的 BeanFactory 和 ApplicationContext 都是抽象工厂,提供了创建 Bean 实例的方法。

  4. 建造者模式(Builder):使用建造者模式来构建复杂的 Bean 对象,例如,HttpMessageConverter、RestTemplate 等。

  5. 原型模式(Prototype):Bean 可以指定作为原型,通过复制来创建新实例。

  6. 适配器模式(Adapter):Spring MVC 中的 HandlerAdapter 和 HandlerExceptionResolver 就是适配器模式的应用。

  7. 桥接模式(Bridge):Spring 中的 JdbcTemplate 和 NamedParameterJdbcTemplate 就是桥接模式的应用。

  8. 组合模式(Composite):Spring 中的 ApplicationContext 是一种树形结构,可以把 Bean 定义成一个层级结构。

  9. 装饰器模式(Decorator):Spring 中的 AOP 就是装饰器模式的应用。

  10. 外观模式(Facade):Spring 中的 Facade 模式的实现包括 JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcInsert 等。

  11. 享元模式(Flyweight):Spring 中的使用 AOP 时,使用的切面是单例的,因此如果一个切面需要被多个 Bean 使用,可以考虑使用享元模式。

  12. 代理模式(Proxy):Spring 中的 AOP 就是通过代理模式实现的。

  13. 责任链模式(Chain of Responsibility):Spring 中的 HandlerExceptionResolver 就是责任链模式的实现。

  14. 命令模式(Command):Spring MVC 中的 Controller 就是命令模式的应用。

  15. 迭代器模式(Iterator):Spring 中的 JdbcTemplate 和 NamedParameterJdbcTemplate 都实现了迭代器模式。

  16. 中介者模式(Mediator):Spring 中的 ApplicationContext 就是中介者模式的应用。

  17. 备忘录模式(Memento):Spring 中的 HttpSessionBindingListener 就是备忘录模式的应用。

  18. 观察者模式(Observer):Spring 中的 ApplicationEvent 就是观察者模式的应用。

  19. 状态模式(State):Spring MVC 中的 HandlerMethod 就是状态模式的应用。

  20. 策略模式(Strategy):Spring 中使用的 AOP 就是策略模式的应用。

  21. 模板方法模式(Template Method):Spring 中的 JdbcTemplate 就是模板方法模式的应用。

  22. 访问者模式(Visitor):Spring 中的 BeanPostProcessor、BeanFactoryPostProcessor 就是访问者模式的应用。

  23. 解释器模式(Interpreter):在 Spring 中暂时没有明显的应用。


  1. Singleton(单例模式):Spring中的Bean默认都是单例模式,保证在同一次请求中只有一个实例存在。

  2. Factory Method(工厂方法模式):Spring中的BeanFactory就是一个经典的工厂方法模式的例子。

  3. Abstract Factory(抽象工厂模式):Spring中的AbstractFactoryBean就是一个抽象工厂模式的实现,用于创建其他Bean的的工厂。

  4. Builder(建造者模式):Spring中的RestTemplateBuilder就是一个建造者模式的实现,用于构建RestTemplate。

  5. Prototype(原型模式):Spring中的Scope为prototype的Bean每次请求都会创建新的实例。

  6. Adapter(适配器模式):Spring中的Adapter设计模式主要应用在AOP的实现中,将横切逻辑织入到Bean中。

  7. Decorator(装饰器模式):Spring中的AOP实现也是一个典型的装饰器模式的例子。

  8. Proxy(代理模式):Spring中的AOP实现也是一个典型的代理模式的例子。

  9. Facade(外观模式):Spring中的ApplicationContext就是一个外观模式的实现,用于隐藏复杂的Bean创建和依赖注入过程,并提供统一的接口。

  10. Bridge(桥接模式):Spring中的DataSource和JdbcTemplate的结合就是一个桥接模式的实现。

  11. Composite(组合模式):Spring中的ApplicationContext就是一个典型的组合模式的例子,多个子容器可以组成一个树形结构。

  12. Flyweight(享元模式):Spring中的缓存机制就是一个享元模式的实现,多次请求同一个对象时,直接从缓存中获取。

  13. Chain of Responsibility(职责链模式):Spring中的FilterChain就是一个典型的职责链模式的例子。

  14. Command(命令模式):Spring中的Command设计模式主要应用在MVC的实现中,将请求和处理逻辑分离。

  15. Iterator(迭代器模式):Spring中的数据访问对象(DAO)通常实现Iterator或List接口,用于遍历数据。

  16. Mediator(中介者模式):Spring中的ApplicationContext就是一个典型的中介者模式的例子,用于协调Bean之间的依赖关系。

  17. Memento(备忘录模式):Spring中的事务管理就是一个典型的备忘录模式的例子,用于在事务回滚时恢复状态。

  18. Observer(观察者模式):Spring中的事件机制就是一个典型的观察者模式的例子。

  19. State(状态模式):Spring中的事务管理就是一个典型的状态模式的例子,用于管理事务的生命周期。

  20. Strategy(策略模式):Spring中的数据源路由就是一个典型的策略模式的例子,用于根据不同的条件选择不同的数据源。

  21. Template Method(模板方法模式):Spring中的JdbcTemplate就是一个典型的模板方法模式的例子,用于封装JDBC操作的模板。

  22. Visitor(访问者模式):Spring中的AOP实现也是一个典型的访问者模式的例子。

  23. Interpreter(解释器模式):Spring中的表达式语言(EL)就是一个典型的解释器模式的例子,用于解析表达式。


设计模式是一种反复出现的可行方案,这些方案可以在特定情况下解决特定的问题。Spring Cloud可以说是一个设计模式的实践者,下面简述23种设计模式在SpringCloud源码里的应用:

  1. 适配器模式:Ribbon中的ILoadBalancer接口和ServerList接口及其实现类都使用了适配器模式。
  2. 抽象工厂模式:Spring Cloud的@Configuration注解就是抽象工厂模式的一个经典应用。
  3. 代理模式:Spring AOP就是基于代理模式实现的。
  4. 建造者模式:RestTemplate的Builder类使用建造者模式来构建RestTemplate对象。
  5. 职责链模式:Zuul中的Filter接口就是职责链模式的应用。
  6. 命令模式:Spring Batch中的JobLauncher和Job接口就是典型的命令模式。
  7. 组合模式:Eureka中的InstanceRegistry类和InstanceInfo类都使用了组合模式。
  8. 装饰模式:Spring Security就是通过装饰模式来实现其安全功能的。
  9. 外观模式:Spring Framework通过ApplicationContext提供了外观模式的应用。
  10. 工厂方法模式:Spring Boot中的@Configuration注解就是工厂方法模式的一个经典应用。
  11. 迭代器模式:Spring Framework中的BeanIterator就是迭代器模式的一个应用。
  12. 中介者模式:Spring Web MVC中通过DispatcherServlet来实现中介者模式。
  13. 备忘录模式:RedisTemplate就是使用备忘录模式来实现对redis的操作。
  14. 观察者模式:Spring Framework中的ApplicationListener就是观察者模式的应用。
  15. 原型模式:Spring AOP中使用原型模式来实现代理对象的创建和管理。
  16. 享元模式:Spring Framework中的BeanFactory就是享元模式的一个应用。
  17. 代理模式:Spring Data JPA就是使用代理模式来实现动态代理。
  18. 原始模式:Ribbon中的IRule接口就是原始模式的一个应用。
  19. 单例模式:Spring Framework中的BeanFactory就是单例模式的一个应用。
  20. 状态模式:Spring Batch中的StepExecutionStatus就是状态模式的一个应用。
  21. 策略模式:Spring Framework中的Resource接口就是策略模式的一个应用。
  22. 模板方法模式:Spring Framework中的JdbcTemplate就是模板方法模式的一个应用。
  23. 访问者模式:Spring Framework中的BeanPostProcessor就是访问者模式的一个应用。

    设计模式是一种被广泛应用于软件开发领域的思想,它提供了一些被视为是最佳实践的解决方案,可以帮助我们解决软件开发中所遇到的各种问题。SpringCloud 是一个流行的微服务框架,它采用了多种设计模式来实现其核心功能。下面简要介绍一下这些设计模式在SpringCloud源码中的应用:

  1. 单例模式(Singleton Pattern):SpringCloud 中的许多组件都采用了单例模式,如通用的配置管理组件 Config,分布式服务链路追踪组件 Zipkin,服务注册和发现组件 Eureka 等。

  2. 工厂模式(Factory Pattern):SpringCloud 中使用了工厂模式来创建各种组件。如 Ribbon 的 LoadBalancer 和 IRule,Hystrix 的 CircuitBreaker 和 Fallback。

  3. 抽象工厂模式(Abstract Factory Pattern):SpringCloud 中的 Hystrix 采用了抽象工厂模式来创建不同类型的 Command。

  4. 代理模式(Proxy Pattern):SpringCloud 中的 Zuul 和 Ribbon 都采用了代理模式来实现其核心功能。

  5. 模板方法模式(Template Method Pattern):SpringCloud 中的 Feign 采用了模板方法模式来定义 HTTP 请求的操作流程。

  6. 适配器模式(Adapter Pattern):SpringCloud 中的 Feign 和 Ribbon 都采用了适配器模式来适配不同的 HTTP 客户端。

  7. 观察者模式(Observer Pattern):SpringCloud 中的 Eureka 采用了观察者模式来实现服务注册和发现功能。

  8. 策略模式(Strategy Pattern):SpringCloud 中的 Ribbon 采用了策略模式来选择 LoadBalancer 和 IRule。

  9. 责任链模式(Chain of Responsibility Pattern):SpringCloud 中的 Zuul 采用了责任链模式来处理请求。

  10. 命令模式(Command Pattern):SpringCloud 中的 Hystrix 采用了命令模式来实现对服务的保护和管理。

  11. 状态模式(State Pattern):SpringCloud 中的 Hystrix 采用了状态模式来管理服务的状态。

  12. 迭代器模式(Iterator Pattern):SpringCloud 中的 Config 采用了迭代器模式来遍历配置。

  13. 桥接模式(Bridge Pattern):SpringCloud 中的 Stream 采用了桥接模式来实现不同类型的消息传输。

  14. 组合模式(Composite Pattern):SpringCloud 中的 Config 采用了组合模式来管理配置。

  15. 享元模式(Flyweight Pattern):SpringCloud 中的 Stream 采用了享元模式来缓存重复的数据。

  16. 备忘录模式(Memento Pattern):SpringCloud 中的 Hystrix 采用了备忘录模式来保存服务的状态。

  17. 解释器模式(Interpreter Pattern):SpringCloud 中的 Stream 采用了解释器模式来实现对消息的解析和处理。

  18. 装饰器模式(Decorator Pattern):SpringCloud 中的 Zuul 采用了装饰器模式来扩展其功能。

  19. 门面模式(Facade Pattern):SpringCloud 中的 Eureka 采用了门面模式来简化服务注册和发现的流程。

  20. 建造者模式(Builder Pattern):SpringCloud 中的 Sleuth 采用了建造者模式来构建新的 Span。

  21. 操作者模式(Operator Pattern):SpringCloud 中的 Stream 采用了操作者模式来实现对消息的处理。

  22. 中介者模式(Mediator Pattern):SpringCloud 中的 Config 采用了中介者模式来协调各个组件之间的交互。

  23. 访问者模式(Visitor Pattern):SpringCloud 中的 Hystrix 采用了访问者模式来实现对服务状态的访问和修改。


    在SpringCloud源码中,涉及到了大量的设计模式,其中23种设计模式都有应用,简述如下:

  1. 建造者模式:在SpringCloud中负责创建RestTemplate对象时使用了建造者模式,通过使用RestTemplateBuilder对象进行定制化构建。
  2. 单例模式:在SpringCloud中,从ApplicationContext中获取Bean时会使用到单例模式。
  3. 工厂方法模式:在SpringCloud中,RestTemplateFactory就是一个工厂方法模式的例子,它提供了创建RestTemplate实例的方法。
  4. 抽象工厂模式:在SpringCloud中,RibbonLoadBalancerClient就是一个抽象工厂模式的例子,它提供了用于创建负载均衡器的方法。
  5. 策略模式:在SpringCloud中,RibbonLoadBalancerClient中使用了策略模式,用来选择负载均衡器的算法。
  6. 适配器模式:在SpringCloud中,例如RibbonLoadBalancerClient中的ILoadBalancer接口,使用了适配器模式,它允许不同的负载均衡器实现进行适配。
  7. 模板方法模式:在SpringCloud中,HystrixCommand就是一个模板方法模式的例子,它定义了执行命令的骨架,具体实现由子类实现。
  8. 迭代器模式:在SpringCloud中,ZuulFilter使用了迭代器模式,它提供了一个迭代器来遍历过滤器链。
  9. 观察者模式:在SpringCloud中,EurekaClient使用了观察者模式,它允许客户端注册观察者来监听服务实例的注册和注销。
  10. 中介者模式:在SpringCloud中,HystrixCommand和HystrixObservableCommand使用了中介者模式来协调各个组件之间的通信。
  11. 代理模式:在SpringCloud中,RibbonLoadBalancerClient和FeignClient都使用了代理模式,提供了一个代理来处理网络请求。
  12. 装饰模式:在SpringCloud中,ZuulFilter就是一个装饰模式的例子,它允许在请求处理前后添加过滤器。
  13. 组合模式:在SpringCloud中,HystrixThreadPoolProperties和HystrixCircuitBreakerProperties使用了组合模式,它们允许将多个属性组合成一个属性集合。
  14. 命令模式:在SpringCloud中,HystrixCommand和HystrixObservableCommand使用了命令模式,它允许将请求封装成一个对象并传递给调用者。
  15. 状态模式:在SpringCloud中,HystrixCommand和HystrixObservableCommand使用了状态模式,它允许在不同的状态下执行不同的操作。
  16. 解释器模式:在SpringCloud中,EurekaServerConfiguration使用了解释器模式,它提供了一个DSL来定义Eureka Server的配置。
  17. 桥接模式:在SpringCloud中,NetflixLoadBalancerClient和RibbonLoadBalancerClient使用了桥接模式,它允许将逻辑和实现分离。
  18. 外观模式:在SpringCloud中,Feign和Ribbon使用了外观模式,提供了一个简单的接口来访问复杂的功能。
  19. 过滤器模式:在SpringCloud中,ZuulFilter使用了过滤器模式,它提供了一组过滤器来处理请求。
  20. 接口适配器模式:在SpringCloud中,RibbonLoadBalancerClient使用了接口适配器模式,它提供了一组适配器来适配不同的负载均衡器实现。
  21. 空对象模式:在SpringCloud中,EurekaClient使用了空对象模式,它允许在没有服务实例时返回一个空对象。
  22. 享元模式:在SpringCloud中,HystrixCommandProperties使用了享元模式,它允许共享多个相同的HystrixCommandProperties实例。
  23. 职责链模式:在SpringCloud中,ZuulFilter使用了职责链模式,它允许将多个过滤器组成一个过滤器链来处理请求。

相关文章:

23种设计模式在SpringCloud源码里的应用

单例模式(Singleton):Spring 中的 Bean 默认都是单例模式,保证在整个应用中只有一个实例。 工厂方法模式(Factory Method):Spring 中的 BeanFactory 和 ApplicationContext 都实现了工厂方法模…...

几个精致的Linux命令

说到Linux命令,一些基础的简单的单个命令我就不说了,咱今天来点复杂的组合命令,比较长,但觉对很酷: 打印业务服务异常日志: tail -f business-service.log | grep -i exception --color 或者 grep --…...

CoDeSys系列-3、Windows运行时软PLC主站和p-net从站IO设备组网测试

CoDeSys系列-3、Windows运行时软PLC主站和p-net从站IO设备组网测试 文章目录 CoDeSys系列-3、Windows运行时软PLC主站和p-net从站IO设备组网测试一、前言二、Windows运行时软plc配置编程1、安装Windows下的运行时扩展包(非必要)2、创建项目2.1、创建标准…...

vscode下ssh免密登录linux服务器

vscode使用ssh免密登录linux 1、安装SSH插件2、生成密钥3、linux安装ssh服务4、linux下配置公钥5、vscode远程登录 注:测试环境为window10Ubuntu1804/Ubuntu2204 1、安装SSH插件 扩展->搜索SSH->点击install进行安装,如下图所示: 2、…...

基于jquery+html开发的json格式校验工具

json简介 JSON是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族…...

【面试经典150 | 栈】最小栈

文章目录 Tag题目来源题目解读解题思路方法一:辅助栈方法二:一个栈方法三:栈中存放差值 其他语言python3 写在最后 Tag 【设计类】【栈】 题目来源 155. 最小栈 题目解读 本题是一个设计类的题目,设计一个最小栈类 MinStack() …...

Linux网络基础2 -- 应用层相关

一、协议 引例:编写一个网络版的计算器 1.1 约定方案:“序列化” 和 “反序列化” 方案一:客户端发送形如“11”的字符串,再去解析其中的数字和计算字符,并且设限(如数字和运算符之间没有空格; 运算符只…...

【Python机器学习】零基础掌握SkewedChi2Sampler内核近似特征

有没有遇到这样的困扰:即使在拥有大量数据的条件下,传统的机器学习模型表现依然不佳?这时,数据预处理和特征工程成了解决问题的关键步骤。那么,有没有一种算法能够优化特征,提升模型性能呢? 假设一个在线商城希望通过用户行为(比如点击、购买等)来预测用户是否会成为…...

Unity Meta Quest 一体机开发(三):Oculus Integration 基本原理、概念与结构+玩家角色基本配置

文章目录 📕教程说明📕输入数据📕Oculus Integration 处理手部数据的推荐流程📕VR 中交互的基本概念📕Oculus Integration 中的交互流程📕配置一个基本的玩家物体⭐OVRCameraRig⭐OVRInteraction⭐OVRHandP…...

excel 拼接字符 单元格

需要将单元格作为字符串拼接,使用 & 符号,拼接逗号,分号,冒号,横杠等,需要用英文双引号。...

HarmonyOS 快速入门TypeScript

1.什么是TypeScript,它和JavaScript,ArkTs有什么区别 ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发…...

ChatGPT扩展系列之ChatExcel

文章目录 ChatGPT扩展系列之ChatExcel对某一列的文字进行处理对数据进行排序对数据进行计算微软官方又推出Excel AI插件ChatGPT扩展系列之ChatExcel 自从ChatGPT很空出世之后,很多基于ChatGPT的应用便如雨后春笋般应用而生,这些应用的底层本质就是利用了ChatGPT对自然语言的…...

AM@微元法和定积分的应用@平面图形面积@立体体积@曲线弧长

文章目录 abstract微元法平面图形的面积极坐标上图形面积曲边扇形面积 平行截面面积为已知的立体体积旋转体的体积绕 x x x轴旋转绕 y y y轴旋转另一类型旋转体积 曲线弧长参数方程表示的曲线弧长直角坐标方程表示的曲线弧长极坐标方程表示得曲线弧长小结 abstract 微元法定积…...

SparkStreaming【实例演示】

前言 1、环境准备 启动Zookeeper和Kafka集群导入依赖&#xff1a; <dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_2.12</artifactId><version>3.2.4</version></dependency><dependency>&l…...

提高抖音小店用户黏性和商品销量的有效策略

抖音小店是抖音平台上的电商模式&#xff0c;用户可以在抖音上购买各类商品。要提高用户黏性和商品销量&#xff0c;四川不若与众帮你整理了需要注意以下几个方面。 首先&#xff0c;提供优质的商品和服务。在抖音小店中&#xff0c;用户会通过观看商品展示视频和用户评价来选…...

提高公众意识:共同防范AI诈骗

随着人工智能技术的飞速发展&#xff0c;AI诈骗成为了一个不容忽视的威胁&#xff0c;影响到我们的社交、金融和个人隐私安全。在这个数字时代&#xff0c;提高公众对AI诈骗的意识至关重要&#xff0c;以下是一些关于如何提高公众意识以防范AI诈骗的观点&#xff1a; 认知AI诈…...

MES的物料管理

----物料管理的定义和作用---- 物料管理在制造执行系统&#xff08;MES&#xff09;中扮演着至关重要的角色。通过有效的物料管理&#xff0c;企业可以实现生产过程的高效性、准确性和可靠性&#xff0c;从而提高生产效率并降低成本。 一、物料管理的定义 物料管理是指对生产过…...

正点原子嵌入式linux驱动开发——Linux 多点电容触摸屏

随着智能手机的发展&#xff0c;电容触摸屏也得到了飞速的发展。相比电阻触摸屏&#xff0c;电容触摸屏有很多的优势&#xff0c;比如支持多点触控、不需要按压&#xff0c;只需要轻轻触摸就有反应。ALIENTEK的三款RGB LCD屏幕都支持多点电容触摸&#xff0c;本章就以ATK7016这…...

Git基础命令实践

文章目录 简介git的安装配置git的安装git的配置 git使用的基本流程创建版本库时光机穿梭版本回退工作区和暂存区管理修改撤销修改删除文件 远程仓库添加远程库从远程库克隆 总结 简介 本文主要记录了我在学习git操作的过程&#xff0c;以及如何使用GitHub。建议先参考廖雪峰的…...

微信小程序设计之页面文件pages

一、新建一个项目 首先&#xff0c;下载微信小程序开发工具&#xff0c;具体下载方式可以参考文章《微信小程序开发者工具下载》。 然后&#xff0c;注册小程序账号&#xff0c;具体注册方法&#xff0c;可以参考文章《微信小程序个人账号申请和配置详细教程》。 在得到了测…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

wpf在image控件上快速显示内存图像

wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像&#xff08;比如分辨率3000*3000的图像&#xff09;的办法&#xff0c;尤其是想把内存中的裸数据&#xff08;只有图像的数据&#xff0c;不包…...