内存 模式

Day07-设计模式之桥接模式

桥接模式介绍 桥接模式(Bridge Pattern)是将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变,保持各部分的独立性以及应对他们的功能扩展。 UML类图及角色职责 抽象类(Abstraction):定义抽象接口,由聚合关系可知,抽象类中包含一个Implementor类型的对象,它与 ......
模式 设计模式 Day 07

Day08-设计模式之装饰者模式

设计模式之装饰者模式 引例 **需求:**假设现在有烧饵块:白米饵块(WhiteRice),紫米饵块(PurpleRice),黄米饵块(yellowRice),调料有热狗(HotDog),油条(oilNoodle),鸡柳(chicken),客户可以单点白米的,或者白米+调料的组合,计算相应的费用,要 ......
模式 设计模式 Day 08

关于敏捷开发、系统重构、设计原则、设计模式之间的思考

敏捷开发、系统重构、设计模式是软件开发中不同的概念,它们之间有一些联系和相互影响。 敏捷开发方法强调快速响应客户需求,通过迭代和增量的方式来开发软件。在敏捷开发中,设计模式可以被用来提高软件质量和可维护性,因为设计模式是已经被证明有效的软件设计方案。在开发过程中,团队可以使用设计模式来提高代码的复用 ......
设计模式 原则 之间 模式 系统

docker网络模式

Docker有4种网络模式(--network=) bridge默认模式,分配network namespace和IP,连接到docker0网桥上。 host使用主机IP,不分配network namespace和IP,和宿主机共用network namespace。 container和已存在的某 ......
模式 docker 网络

Golang - Option模式(2)(函数选项模式)

函数式选项模式(Functional Options Pattern) 函数式选项模式是一种在 Go 中构造结构体的模式,它通过设计一组非常有表现力和灵活的 API 来帮助配置和初始化结构体。 优缺点 选项模式有很多优点,例如:支持传递多个参数并且在参数发生变化时保持兼容性;支持任意顺序传递参数;支 ......
模式 函数 Golang Option

Golang - Option模式(函数选项模式)

解释 Option模式的专业术语为:Functional Options Pattern(函数式选项模式)Option模式为golang的开发者提供了将一个函数的参数设置为可选的功能,也就是说我们可以选择参数中的某几个,并且可以按任意顺序传入参数。比如针对特殊场景需要不同参数的情况,C++可以直接用 ......
模式 函数 Golang Option

状态模式

概述 《设计模式》一书中对于 “状态模式” 的描述如下: 允许一个对象在其内部状态发生改变时改变它的行为,使得这个对象看起来像修改了它的类 状态模式的 UML 图如下所示: 一般在以下几种情况下使用状态模式: 一个对象的行为取决于它的状态 一个操作中含有庞大的多分支条件语句,且这些分支依赖于该对象的 ......
状态 模式

内存相关

redis 中的info 指标 # redis 中key-value使用的内存量 used_memory:2709112 used_memory_human:2.58M # 从操作系统层面redis 内存占用量 used_memory_rss:5378048 used_memory_rss_huma ......
内存

《3D编程模式》写书-第3次记录

大家好,这段时间我完成了“积木模式”、“管道模式”、“多线程模式”、“依赖隔离模式”的初稿 目前我已经完成了所有模式(7个模式)的初稿,下面会给出它们的使用场景,如果您正好能用到,请联系我提前阅读模式的初稿,欢迎大家给出反馈建议,您的大名有机会出现在《3D编程模式》的书中,感谢! 我的QQ号: 39 ......
模式

[Mellanox] 安装MFT并配置网卡为以太网模式

[Mellanox] 安装MFT并配置网卡为以太网模式 当我们想要配置Mellanox网卡时,如果出现了下面情况: $ sudo mst start mst: command not found 这说明我们的系统中缺少MFT。 MFT是一套管理Mellanox网卡的工具,也是MLEX_OFED中的一 ......
以太网 网卡 Mellanox 模式 MFT

项目中的观察者模式

背景 目前开发的项目中,出现过许多次观察者模式,且其和普通的观察者模式有些许不同,为了理解而进行整理。 项目中的观察者模式 类图: 流程:脚本订阅消息队列消息,创建Subject,传送解析后的消息给所有观察者,观察者根据消息类型判断是不是自己关心的消息,是的话就把自己注册到Subject中;Subj ......
观察者 模式 项目

C++中的虚函数表实现机制——对于虚表的内存布局讲解得非常好

C++中的虚函数表实现机制 摘自:https://blog.twofei.com/496/ 前言 大家都应该知道C++的精髓是虚函数吧? 虚函数带来的好处就是: 可以定义一个基类的指针, 其指向一个继承类, 当通过基类的指针去调用函数时, 可以在运行时决定该调用基类的函数还是继承类的函数. 虚函数是 ......
函数 布局 机制 内存

内存对齐详解 (C++代码)

内存对齐详解 (C++代码) 我每天都有读一下面经的习惯,从里面抽一些我不太懂的内容使用 dfs 的思想去探索,感谢有了GPT4,探索之路变得有趣和高效许多。 今天这个 Topic 如下,是腾讯日常实习面经中的内容 编译内存相关: C++内存管理,分了多少段,在堆上和在栈上的区别,为什么要区分堆和栈 ......
内存 代码

Spring03_代理模式

一、静态代理 (一)代理模式概述 ​ 在不改变原始类(或叫被代理类)的情况下,通过引入代理类来给原始类附加功能。一般情况下,我们让代理类和原始类实现同样的接口。但是,如果原始类并没有定义接口,并且原始类代码并不是我们开发维护的。在这种情况下,我们可以通过让代理类继承原始类的方法来实现代理模式。 ​ ......
模式 Spring 03

Delphi FDMemTable内存表用法及简单操作函数封装(转)

在某些场景下当轻量级的应用需要在内存中缓存数量比较多且字段比较多的高频使用数据时。以前我都是采用Ini或直接使用sqlite数据库。JSON也试过基本无法或很难实现需要的功能,因为当涉及某一同类型对象多字段多列时不通过遍历基本无法直接取到或修改数据。这样就导致了效率的低下。比如你在写一个多任务多线程 ......
FDMemTable 函数 内存 Delphi

03装饰者模式

#例子 星巴兹是以扩张速度最快而闻名的咖啡连锁店。因为扩张速度实在太快,他们着急更新订单系统,来匹配他们的饮料供应要求。 ##实现1 继承 购买咖啡时,也可以要求其中加入各种调料,例如:蒸奶,豆浆 很明显,星巴兹为自己制造了一个维护噩梦,如果牛奶的价钱上扬,怎么办?新增一种焦糖调料风味时,怎么办 调 ......
模式

MFC-memcpy内存区域复制

TCHAR s[] = _T("我是李明"); TCHAR d[20]; memcpy(d, s, _tcslen(s) * sizeof(TCHAR)+2); //功能:由s所指内存区域复制count(参数3)个字节到d所指内存区域 ......
MFC-memcpy 内存 区域 memcpy MFC

PyQt5 软件在 macOS HiDPI 模式下出现字体模糊的问题

PyQt5 编写的软件在 Windows 上会自动适应屏幕的缩放,但在 macOS 上却出现了意料之外的字体模糊的问题。以焰火十二卷为例,在 macOS HiDPI 模式下,重新编译后的界面相比之前要更加清晰。 ......
字体 模式 问题 PyQt5 HiDPI

rust模式匹配(可驳模式匹配与不可驳模式匹配)

rust的一个特性就是模式匹配(OOP编程语言好像都有?),模式匹配常常和变量绑定一起考虑 常见的模式匹配有: match、if let、while let、let、for、函数参数等等 (for和let我个人认为说是模式匹配,其实有点牵强了,除非这样let (x,y) = (1,2) 可驳与不可驳 ......
模式 rust

设计模式-工厂模式

工厂模式 定义 工厂父类负责定义创建对象的公共接口,子类则负责生成具体的对象 将类的实例化(具体产品的创建)延迟到工厂类的子类(具体工厂)中完成,即由子类来决定应该实例化哪个类 类图 组成 抽象产品 具体产品的父类,描述具体产品的公共接口 具体产品 抽象产品的子类,生产的具体产品 抽象工厂 具体工厂 ......
模式 设计模式 工厂

.net core 3.1仓储模式升.net core 6

上节中写了.net core3.1仓储模式,升Core6仓储模式我们只需要把Core3.1的东西搬到.net core6 API项目就行 下面是需要改动的地方 这是我们上节中core 3.1仓储模式的连接方式 这个太局限了,只能使用配置的数据库版本 下面是升级到Core6仓储模式的连接方式 serv ......
core net 模式 3.1

PHP cli模式执行脚本 -- 通过getopt()接收参数

学习记录 留作参考 祝君好运 用于执行Linux定时任务的PHP文件,通过接收不同参数实现不同功能。 使用cli模式执行一些操作 PHP用于定时任务的代码 使用 getopt() 获取命令行参数 short_options 注意: 使用: 使用cli模式执行一些操作 PHP官方文档:执行PHP文件 ......
脚本 参数 模式 getopt PHP

设计模式——工厂模式

设计模式之工厂模式 简单工厂模式 简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,用于封装对象的创建逻辑。在简单工厂模式中,创建对象的逻辑被封装在一个工厂类中,而不是在客户端直接创建对象。 简单工厂模式的主要参与角色: 产品(Product):即要创建的对象,通常是 ......
模式 设计模式 工厂

Redis主从复制模式原理及演进

一、主从模式 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。 默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能 ......
主从 原理 模式 Redis

JVM的内存分配及各种常量池的区别(静态常量池、运行时常量池、字符串常量池)

JVM内存分配 先了解下JVM中的内存分配,此处以hotspot vm为例(官方jdk采用的vm) 程序计数器 栈 1. 虚拟机栈 2. 本地方法栈 Java堆 堆内存是各个线程共享的区域 方法区 它用于存储已经被虚拟机加载的类信息、常量、静态变量、即编译器编译后的代码等数据。静态变量、常量在方法区 ......
常量 字符串 静态 字符 内存

78、混合模式—变亮组

1、在抠图的时候,如果选择了【主体】进行快速抠图的话,那么可能有些地方是扣的不是很合心意的,就要用到钢笔工具重新来抠画, 勾画完就按【Ctrl+回车】,然后右键【建立选区】—>【添加到选区】,就可以了 ......
模式

jvm 内存结构

jvm 内存结构和 java 内存模型不是同一个东西 | 线程私有 | 线程共享 | | | | | 程序计数器 | 堆 | | 虚拟机栈 | 方法区 | | 本地方法区 | 堆外内存(Java7的永久代或JDK8的元空间、代码缓存) | 程序计数器 也叫 PC 寄存器,存储下一条程序行号(严格是机 ......
内存 结构 jvm

vim中使用鼠标右键插入时进入(insert)visual模式

某天使用vim插入外面复制的内容时,发现用右键点击后,并未将内容粘贴进去,而是进入了(insert)visual模式,查找了一番博客,可通过以下方式处理: 先shift+enter进入普通模式输入 set mouse-=a然后再i进入insert模式,就可以正常右键粘贴了 ......
鼠标 模式 insert visual vim

贴图运行内存占用计算

以128x128的图片为例 1) 没有任何压缩的格式,RGBA 32bit=128x128x(32bit/8)=64kb,勾上MipMap会变成85.3kb 2) RGBA Compressed ETC2 8bits=128x128x(8bit/8)=16kb,勾上MipMap会变成21.4kb 3 ......
内存 贴图

Vue.js history模式与hash模式

视频 13.路由器的两种工作模式 对于一个url来说,什么是hash值?—— #及其后面的内容就是hash值。 hash值不会包含在 HTTP 请求中,即:hash值不会带给服务器。 hash模式: 地址中永远带着#号,不美观 。 若以后将地址通过第三方手机app分享,若app校验严格,则地址会被标 ......
模式 history hash Vue js