复用专题

《设计模式:可复用面向对象软件的基础》读书笔记(3)

这篇博客记录了书中《第3章:创建型模式》里的要点。 介绍 创建型设计模式抽象了实例化过程。 在这些模式中有两个不断出现的主旋律: 他们都将关于该系统使用哪些具体的类的信息封装起来。他们隐藏了这些类的实例是如何被创建和放在一起的。 整个系统关于这些对象所知道的是由抽象类所定义的接口。因此,创建型模式在什么被创建、谁创建它、它是怎样被创建的,以及何时被创建等方面给予你很大的灵活性。 下面将这

【设计模式】哪些模式可以提高代码的可维护性和复用性?

可维护性 MVC模式 (Model-View-Controller):将应用程序分为三个部分,分别是模型(Model)、视图(View)和控制器(Controller),它们之间通过定义清晰的接口进行交互。这种模式可以将业务逻辑与用户界面分离,使得应用程序更容易维护和优化。 观察者模式 (Observer):将对象之间的一对多的依赖关系封装起来,当一个对象发生改变时,它的所有依赖者都会得到通

OkHttp3源码分析[复用连接池]

OkHttp系列文章如下 OkHttp3源码分析[综述]OkHttp3源码分析[复用连接池]OkHttp3源码分析[缓存策略]OkHttp3源码分析[DiskLruCache]OkHttp3源码分析[任务队列] 1. 概述 HTTP中的keepalive连接在网络性能优化中,对于延迟降低与速度提升的有非常重要的作用。 通常我们进行http连接时,首先进行tcp握手,然后传输数据,最后释

做好代码复用不简单(1)

前面我们用了那么多示例讨论了代码复用。毫无疑问,几乎所有人都明白代码复用的重要意义,知道要写好代码必须要合理地复用代码。然而,曾经有一份真挚的感情放在你面前你却没有珍惜,那就是你应该复用代码了。等你失去的时候我才后悔莫及,有木有?为什么每当我们应当复用代码的关键时刻,我们却往往选择复制粘贴呢?因为道理非常清楚但实际操作起来却困难重重,因为要实现复用必须要调整原有程序。要调整原有程序,这就不好玩了

IO端口复用之poll的底层实现

介绍     解说中存在一些函数和数据结构,具体出处可以参照上一篇关于select的分析 《IO端口复用之select的底层实现》,里面提及了一些储备知识点,本篇不再赘述。     由于tcp过于复杂,取个巧,全篇以udp连接来说明一下,内核版本依旧对应2.6.32。 poll系统调用做了什么 接口说明     poll系统调用接口,一共需要3个参数。     第一个参数是监听集指针u

IO端口复用之select的底层实现

介绍     由于tcp过于复杂,取个巧,全篇以udp连接来说明一下,内核版本对应2.6.32。     select说到底是和网络套接字打交到的,从网络套接字创建的过程(socket和bind系统调用),来了解一下socket、sock、inet_sock等数据结构之间的联系,以及创建一个监听套接字之后到底发生了哪些变化。 储备知识点     此处是一些琐碎的知识点,以便更好的理解sel

深入理解JavaScript系列(46):代码复用模式(推荐篇)

介绍 本文介绍的四种代码复用模式都是最佳实践,推荐大家在编程的过程中使用。 模式1:原型继承 原型继承是让父对象作为子对象的原型,从而达到继承的目的: function object(o) {function F() {}F.prototype = o;return new F();}// 要继承的父对象var parent = {name: "Papa"};// 新对象

深入理解JavaScript系列(45):代码复用模式(避免篇)

介绍 任何编程都提出代码复用,否则话每次开发一个新程序或者写一个新功能都要全新编写的话,那就歇菜了,但是代码复用也是有好要坏,接下来的两篇文章我们将针对代码复用来进行讨论,第一篇文避免篇,指的是要尽量避免使用这些模式,因为或多或少有带来一些问题;第二排是推荐篇,指的是推荐大家使用的模式,一般不会有什么问题。 模式1:默认模式 代码复用大家常用的默认模式,往往是有问题的,该模式使用Pa

端口复用 -- socket编程:SO_REUSEADDR例解

转自:http://blog.csdn.net/xsckernel/article/details/8159292 网友vmstat多次提出了这个问题:SO_REUSEADDR有什么用处和怎么使用。而且很多网友在编写网络程序时也会遇到这个问题。所以特意写了这么一篇文章,希望能够解答一些人的疑难。 其实这个问题在Richard Stevens的《Unix网络编程指南》卷一里有

Linux学习(17)-I/O复用(1)select、poll

本节学习内容 1.I/O复用的作用 2.select接口(1.select接口的作用2.select相关接口3.select编程流程4.代码实现select) 3.poll接口 4.select与poll对比 一、I/O复用的作用 I/O复用使得程序同时监听多个文件描述符。(简单说:I/O复用相当于监视发送端谁有数据,有数据再去处理,从而做到类似于多线程编程) 二、select接口

【Java设计模式】组件模式:使用可复用组件简化复杂系统

文章目录 【Java设计模式】组件模式:使用可复用组件简化复杂系统一、概述二、组件设计模式的别名三、组件设计模式的意图四、组件模式的详细解释及实际示例五、Java中组件模式的编程示例六、何时在Java中使用组件模式七、组件模式在Java中的实际应用八、组件模式的优点和权衡九、源码下载 【Java设计模式】组件模式:使用可复用组件简化复杂系统 一、概述 在Java中,组件设计模

使用vueuse在组件内复用模板

1. 安装vueusae pnpm i @vueuse/core 2. 组件内复用模板 createReusableTemplate 是vueuse中的一个实用工具,用于在 Vue 3 中创建可重复使用的模板片段,同时保持状态的独立性。这对于需要在多个组件中重复使用相同的结构和逻辑时非常有用。 因为这些可复用的代码片段很少,所以抽离成一个单独的组件会有些不必要,比如需要同一种逻辑结构的表单

cell复用问题

我用的tableView当滚动画面的时候,会把上面和下面的文本重复一遍,多滚几次就会重复几次,下面进行一些分析: 复制代码 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {     static NSString *Ce

【HarmonyOS 4.0】UI结构复用

1. @Builder装饰器 自定义构建函数 当页面有多个相同的UI结构时,开发者可以将重复使用的UI元素抽象成一个 @Builder 方法,该方法可在 build() 方法中调用多次,以完成UI结构的复用。@Builder 方法可以定义在组件内或全局。组件内的 @Builder 方法可通过 this 访问当前组件的属性和方法,而全局的 @Builder 方法则不能。组件内的 @Builder

【HarmonyOS 4.0】组件样式复用

当多个组件具有相同的样式时,为避免重复代码,开发者可使用 @Styles、@Extend() 装饰器将多条样式设置提炼成一个方法,直接在各组件声明的位置进行调用,这样可完成样式的复用。 1. @Styles 组件内的 @Styles 方法只能在当前组件中使用,全局的 @Styles 方法目前只允许在当前的 .ets 文件中使用。组件内定义 @Styles 方法时不需要 function

RecyclerView源码分析(二):RecyclerView的缓存与复用机制

1、开篇 在上一篇文章说到,LineaLayoutManager在填充布局之前会先调用detachAndScrapAttachedViews方法先暂时回收子View,然后在layoutChunk中进行子View的获取(可能会创建View)、测量、布局以及回收流程。实际上三大LayoutManager的流程都是一样的,只是细节上有所差异,感兴趣的同学可以阅读一下源码看看。本篇中涉及LayoutMa

C++ TinyWebServer项目总结(9. I/O 复用)

I/O 复用使得程序能够同时监听多个文件描述符,从而提高程序的性能。I/O 复用本身是阻塞的。Linux 下实现 I/O 复用的系统调用主要有 select、poll 和 epoll。 select 系统调用 select API select系统调用:在一段指定时间内,监听用户感兴趣的文件描述符上的可读、可写、异常事件: #include <sys/select.h>int selec

管脚复用中对管脚功能确定的一点经验

在嵌入式画板的时候, 我们需要先明确功能需求, 然后选择芯片, 然后再确定管脚, 特别是在嵌入式资源比较紧缺的时候, 合理分配管脚显得尤为重要. 但是当功能变得非常多的时候, 合理两个字也变得有一定的难度. 我这里谈谈我的一次分配的过程, 供大家参考. 第一步. 确定好功能和芯片 如我们要用 gd32f103 的 usart, i2c, spi 各一组, 由于芯片有很多管脚的封装, 这里功

SOLID——组合复用原则

组合复用原则 组合复用原则主要思想代码示例分析组合复用原则体现1. 组合而非继承2. 动态功能组合3. 复用已有功能4. 接口隔离5. 单一职责 优势总结 组合复用原则 组合复用原则(Composite Reuse Principle)强调在设计中优先使用对象组合而非类继承,以提高系统的灵活性和可维护性。它提倡通过组合对象来实现功能复用,避免因继承而导致的复杂类层次。 主要思

以FLV解复用为例详解开源库FFmpeg中解复用器的源码逻辑及处理流程

目录 1、FFmpeg简介 2、FLV文件格式介绍 3、注册解复用器 4、解复用器的处理 4.1、AVFormatContext 4.1.1、AVClass 4.1.2、AVOption 4.1.3    AVDictionary—AV字典 4.1.4、AVIOContext 4.1.4.1、URLProtocol 4.1.4.2、AVIOContext的初始化及获取 4.

React逻辑复用的方式都有哪些

在日常开发中,能够优雅的复用组件和逻辑,是优秀开发者的职责。在react中,复用逻辑的方式有很多,可以适用于不同的业务场景。今天说三个比较有代表性的,Render Props、HOC、Hooks Render Props 创建一个接受函数作为其子组件的prop的组件,该函数返回一个React元素。通过这种方式,父组件可以通过传递不同的函数来重用相同的逻辑。 示例代码: functio

【Rust日报】 2021-04-27 Zellij,Rust编写的新终端复用工具

simdutf v0.1.1 - 小版本的更新,巨大的性能提升 simdutf是一个Rust编写的SIMD加速的UTF-8验证库。比起std,在non-ASCII快22倍,在ASCII上快了3倍。 GitHub: https://github.com/rusticstuff/simdutf8 :https://www.reddit.com/r/rust/comments/mz44xi/simdu

腾讯出品 AI绘画Stable Diffusion超强插件,工作流一键保存复用!

大家好,我是向阳 近期,听说老东家腾讯开源了一款超强的Stable Diffuison插件——LightFlow,它可以一键保存所有工作流数据,也就是你辛苦实验、创建好的出图提示词+采样器+相关度+插件参数+……都可以一键保存下来,下次直接快速导入,就可以开始工作,非常的强!快跟我去看看吧~ LightFlow简介 官方简介:一个基于SD的开源插件LightFlow,它可以帮助你一键保存所有

从复用性角度阐述中台建设

目录 复用性中台定义深思中台建设产品线形态何时演变中台能力落地中台 业务中台架构总结 技术学习永不止步,最近也是看了很多关于架构设计相关的专栏,慢慢总结出来一部分知识,代入自己的思考与理解,以及结合并反思自己之前公司的架构设计经验,发现很多方法论适用场景,也希望能够解决小伙伴们的一些疑惑以及感谢大佬们也给我指点迷津,站在巨人的肩膀上成长~ 复用性 首先谈一下复用性的理解: 复

使用io命令查引脚复用

下面以3368 UART3 流控为列子说明   1. 首先查看原理图,找到引脚定义   2. 打开该芯片的说明手册,查到GPIO3_C0  GPIO3_C1的 找到GRF章节,获取该GPIO组的IOMUX偏移地址,如下为 0x0028   3. 查看基地址 可以看到GRF起始基地址为0xFF770000 因此该GPIO3_C组的地址为0xFF770028 因此使

微信小程序学习(八):behaviors代码复用

小程序的 behaviors 方法是一种代码复用的方式,可以将一些通用的逻辑和方法提取出来,然后在多个组件中复用,从而减少代码冗余,提高代码的可维护性。 如果需要 behavior 复用代码,需要使用 Behavior() 方法,每个 behavior 可以包含一组属性、数据、生命周期函数和方法 组件引用它时,它的属性、数据和方法会被合并到组件中,生命周期函数也会在对应时机被调用。 1、注册