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

DP学习——享元模式

学而时习之,温故而知新。

享元模式

名词解析

有必要解释下“享元”两字,英文原文是flyweight pattern——轻量级模式,但是翻译过来的“享元”两字太牛逼了——褒贬不一,翻译的他妈都不认识。
享元的高雅在于:
享:共享/共用
元:元数据

合在一起——享元:共享元数据。

至于元数据是啥,看个人理解——对象,结构体、内存块等都可以。

点评下:看了享元模式,我个人觉得可以按照原本英文 Flyweight pattern翻译为通俗的“轻量级模式”或者“共享模式”。个人粗俗理解。因为不得不吐槽下,“享元”两字把人给吓住了——这是啥?肯定很难!很多人放到最后学习,最后一看,日了狗了,核心思想不就共享对象模式么?“享元”“享元”,谢谢你的翻译哇!!

角色

所以角色,也没那么多必要了,核心就是共享资源,共享对象,一般是3个角色,享元抽象类,享元子类,享元工厂类。

为的是共用对象。
只要共用对象,也不必要非得这样,弄个简单的管理也可以的,就一个享元类和管理享元类就够了,爱咋咋地。

应用场景

共享对象,节省内存,首先想到的是内存管理,你看一般内存管理都是维护2个链表——空闲链表和已使用链表——这不就是典型的使用场景么?

这个思想就是享元模式思想。只不过把这些早就存在的代码提炼出来,起个名字吧!——轻量级模式?这个原版英文的翻译太普通了,不能装逼!——共享模式?太通俗了,大家见名知意,很快就会了,我就不能装逼了,不行不行。共享、共享、共享啥呢?有个元数据的翻译?结合下?共享元数据模式?还是太通俗了,大家一看就懂,知识这么廉价的么?古代写书都是越看不懂越高深!(统治阶级愚民政策)那提炼下——“享元”模式。very very very good!oh,
no,太俗了,应该是pretty pretty pretty good!

思考/启发

现在我越来越觉得,设计模式就是不同场景下代码(或者类)的组织形式、武功招式或者兵法。

不得不说的吐槽点

建议翻译技术类的书,不要整的那么“高雅”,高大上,这是看技术翻译书的大多数人的心声。
对比英文原版,尼玛,一句话的事,翻译过来的看不懂,像linux内核中文版书,和原版英文,那意思差了十万八千里——这种臭毛病是来自于中国传统出书——古代的书因为统治需要,“玄之又玄,众妙之门”,书中越“玄”越牛逼。

从繁体字到简体字,从文言文到白话文,是为啥?为了增加大家的识字学习负担??为了让你高知识分子没事了在这耽误大家?

翻译技术类的书,又不是写作文,让你在这拽字呢?这些技术书背后是代码,公式等之类的,你增加大家的学习难度呢?!

还有学校技术类的书,几十年不变,这个算了涉及太多利益。

相关文章:

DP学习——享元模式

学而时习之,温故而知新。 享元模式 名词解析 有必要解释下“享元”两字,英文原文是flyweight pattern——轻量级模式,但是翻译过来的“享元”两字太牛逼了——褒贬不一,翻译的他妈都不认识。 享元的高雅在于: 享:共享/共用 元:…...

无人机10公里WiFi图传摄像模组,飞睿智能超清远距离无线监控,智能安防新潮流

在这个科技日新月异的时代,我们对影像的捕捉和传播有了更高的要求。从传统的有线传输到无线WiFi图传,每一次技术的飞跃都为我们带来了全新的视觉体验。今天,我们要探讨的,正是一款具有划时代意义的科技产品——飞睿智能10公里WiFi…...

SAP S/4HANA Cloud Public Edition

即装即用的云ERP软件。借助SaaS模式为企业提供完备、现代化的ERP 云套件,为企业带来新的技术突破,如自动化的业务流程与基于数据的商业分析。企业可选择这款智能云ERP软件,快速实现自身价值。 什么是 SAP S/4HANA Cloud Public Edition&#…...

LabVIEW汽车动态信号模拟系统

随着汽车工业的快速发展,对汽车电子控制单元(ECU)的测试与仿真需求日益增加。开发了一种基于LabVIEW软件开发的汽车动态信号模拟系统,该系统能有效模拟ECU在实车环境下的工作状态,为ECU的开发和测试提供了一个高效、经…...

chrome 插件:content-script 部分逻辑在页面无法生效,可考虑插入 script 到页面上

背景: 某页面有个输入框, 用的应该是什么库里的组件, 直接修改内容不生效/机制不明确, 于是使用 paste event 粘贴到输入框, 结果发现也不行 定位: 使用 mutationObserver , 发现事件确实触发了, 输入框内容变了, 但马上又变回来了, 于是怀疑是输入框组件有做 mutationObers…...

【前端 10】初探BOM

初探BOM:浏览器对象模型 在JavaScript的广阔世界中,BOM(Browser Object Model,浏览器对象模型)扮演着举足轻重的角色。它为我们提供了一套操作浏览器窗口及其组成部分的接口,让我们能够通过编写JavaScript…...

PostgreSQL入门与进阶学习,体系化的SQL知识,完成终极目标高可用与容灾,性能优化与架构设计,以及安全策略

​专栏内容: postgresql使用入门基础手写数据库toadb并发编程 个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 文章目录 概述基础篇初级篇进阶篇…...

ODBC+FreeTDS从Linux访问Windows SqlServer数据库

提示 \color{red}{提示} 提示: 《Linux系统上编译安装FreeTDS库文件》中讲述了如何编译FreeTDS源码,并安装。 本文部分内容会在上述文章的基础上深入。 本文内容所使用的环境 Windows系统:Windows 10 企业版 64位操作系统;IP&a…...

Chainlit一个快速构建成式AI应用的Python框架,无缝集成与多平台部署

概述 Chainlit 是一个开源 Python 包,用于构建和部署生成式 AI 应用的开源框架。它提供了一种简单的方法来创建交互式的用户界面,这些界面可以与 LLM(大型语言模型)驱动的应用程序进行通信。Chainlit 旨在帮助开发者快速构建基于…...

leetcode日记(51)不同路径Ⅱ

和上一道题(无障碍物的最短路径)很像,但事实上比上一题多了优化方法 根据上一题改的代码如下,添加了对障碍物的判定,如果有障碍物则将数组值设为0。 class Solution { public:int uniquePathsWithObstacles(vector&l…...

图解分布式事务中的2PC与Seata方案

文章目录 文章导图什么是2PC解决传统2PC方案XA方案DTP模型举例:新用户注册送积分总结: Seata方案设计思想执行流程举例:新用户注册送积分 Seata实现2PC事务(AT模式)前提整体机制写隔离读隔离实际案例理解要点说明核心代…...

数据结构(Java):Map集合Set集合哈希表

目录 1、介绍 1.1 Map和Set 1.2 模型 2、Map集合 2.1 Map集合说明 2.2 Map.Entry<K&#xff0c;V> 2.3 Map常用方法 2.4 Map注意事项及实现类 3、Set集合 3.1 Set集合说明 3.2 Set常用方法 3.3 Set注意事项及其实现类 4、TreeMap&TreeSet 4.1 集合类TreeM…...

网络战时代的国家安全:策略、技术和国际合作

网络战时代的国家安全涉及到策略、技术和国际合作等多个方面。以下是对这些问题的简要概述&#xff1a; 网络战策略 网络战策略是指在现代战争中&#xff0c;通过网络技术进行的信息收集、处理、分析、调度和指挥等一系列行动&#xff0c;旨在同时影响和干扰对方的网络系统&am…...

【elasticsearch实现优先展示连词并按某个字段折叠显示最新一条】

elasticsearch实现优先展示连词并按某个字段折叠显示最新一条 前言match_phrase 顺序前缀 boost 权重collapse 折叠基本用法高级功能排序 前言 场景要求&#xff1a; 优先展示关键词连词的商品按照某个字段折叠相同字段&#xff0c;并按指定排序字段选择第一个 match_phras…...

Golang | Leetcode Golang题解之第284题窥视迭代器

题目&#xff1a; 题解&#xff1a; type PeekingIterator struct {iter *Iterator_hasNext bool_next int }func Constructor(iter *Iterator) *PeekingIterator {return &PeekingIterator{iter, iter.hasNext(), iter.next()} }func (it *PeekingIterator) hasNe…...

C语言中的结构体

文章目录 前言一、结构体是什么&#xff1f;二、结构体的定义三、结构体的初始化四、结构体的嵌套五、结构体数组 1结构体数组的定义&#xff1a;六、结构体指针 一、结构体是什么&#xff1f; 我们知道一群类型相同的数据组合到一起是数组&#xff0c;那一群不同类型的数据组…...

3.qml与c++模块化开发

目录 模块化开发封装c模块并使用封装qml模块并使用 模块化开发 什么是模块化开发呢&#xff1f; 举个例子&#xff1a; 我们有一台台式电脑&#xff0c;我们台式电脑有显卡&#xff0c;内存&#xff0c;磁盘&#xff0c;cpu&#xff0c;键盘&#xff0c;鼠标等 你可以将这些部…...

怎么使用github上传XXX内所有文件

要将 目录中的所有文件上传到 GitHub&#xff0c;你可以按照以下步骤进行&#xff1a; 创建一个新的 GitHub 仓库 登录到你的 GitHub 账户。 点击右上角的加号&#xff08;&#xff09;&#xff0c;选择 “New repository”。 输入仓库名称&#xff08;例如&#xff1a;202407…...

合作伙伴中心Partner Center中添加了Copilot预览版

目录 一、引言 二、Copilot 功能概述 2.1 Copilot 简介 2.2 Copilot 的核心功能 2.3 Copilot 的访问和使用 三、Copilot 的使用方法 3.1 Copilot 功能区域 3.2 Copilot 使用示例 3.2.1 编写有效提示 3.2.2 使用反馈循环 四、负责任的人工智能 4.1 Copilot 结果的可…...

Navidrome音乐服务器 + 音流APP = 释放你的手机空间

20240727 By wdhuag 目录 前言&#xff1a; 参考&#xff1a; Navidrome音乐服务器 Demo试用&#xff1a; 支持多平台&#xff1a; 下载&#xff1a; 修改配置&#xff1a; 设置用NSSM成服务启动&#xff1a; 服务器本地访问网址&#xff1a; 音流 歌词封面API&am…...

小米平板5 Windows驱动包:让Windows在平板上流畅运行的终极指南

小米平板5 Windows驱动包&#xff1a;让Windows在平板上流畅运行的终极指南 【免费下载链接】MiPad5-Drivers Based on Surface Duo Drivers. 项目地址: https://gitcode.com/gh_mirrors/mi/MiPad5-Drivers 想要在小米平板5上完美运行Windows系统吗&#xff1f;MiPad5-D…...

AWS CloudFormation模板定制终极指南:从模板到个性化部署的完整教程

AWS CloudFormation模板定制终极指南&#xff1a;从模板到个性化部署的完整教程 【免费下载链接】aws-cloudformation-templates awslabs/aws-cloudformation-templates: 是一个包含各种 AWS CloudFormation 模板的存储库。适合查找和学习 AWS CloudFormation 模板的示例&#…...

4个步骤掌握res-downloader HTTPS资源嗅探:从入门到精通

4个步骤掌握res-downloader HTTPS资源嗅探&#xff1a;从入门到精通 【免费下载链接】res-downloader 资源下载器、网络资源嗅探&#xff0c;支持微信视频号下载、网页抖音无水印下载、网页快手无水印视频下载、酷狗音乐下载等网络资源拦截下载! 项目地址: https://gitcode.c…...

从Python入门到调用伏羲API:零基础开发者气象AI初体验

从Python入门到调用伏羲API&#xff1a;零基础开发者气象AI初体验 你是不是也对那些能预测天气、分析气候的AI模型感到好奇&#xff0c;但一看到“API调用”、“HTTP请求”这些词就觉得头大&#xff0c;心想“这得会编程才行吧”&#xff1f;别担心&#xff0c;这篇教程就是为…...

中国科协发布声明:停止受理学者参加NeurIPS 2026会议资助申请

点击下方卡片&#xff0c;关注“CVer”公众号AI/CV重磅干货&#xff0c;第一时间送达点击进入—>【顶会/顶刊】投稿交流群添加微信号&#xff1a;CVer2233&#xff0c;小助手拉你进群&#xff01;扫描下方二维码&#xff0c;加入CVer学术星球&#xff01;可以获得最新顶会/顶…...

模拟面试回答第十三问:JVM内存模型

JVM简介 JVM是Java程序运行的基石&#xff0c;包括程序计数器&#xff0c;两种栈&#xff0c;堆和方法区五个区域。包含保存类元数据&#xff0c;保存方法字节码执行顺序&#xff0c;保存符号引用与直接地址的映射&#xff0c;为对象实例分配内存&#xff0c;为堆中内存分配对象…...

智能资金概念在算法交易中的深度解析:从理论到实战应用

智能资金概念在算法交易中的深度解析&#xff1a;从理论到实战应用 【免费下载链接】smartmoneyconcepts This is a python package for smart money concept indicators 项目地址: https://gitcode.com/gh_mirrors/smar/smartmoneyconcepts 在当今算法交易领域&#xf…...

补全Query Norm缺失!哈工深团队重构线性注意力,显存直降92.3%

当 Transformer 席卷计算机视觉领域&#xff0c;高分辨率图像、超长序列任务带来的算力与显存瓶颈愈发凸显&#xff1a;标准 Softmax 注意力的二次复杂度&#xff0c;让 70Ktoken 的超分辨率任务直接显存爆炸&#xff0c;高分辨率图像分割、检测的推理延迟居高不下。线性注意力…...

GIL已死,但并发未生:从字节码级剖析无锁Python的7类竞态陷阱与4种Lock-Free算法选型矩阵

第一章&#xff1a;GIL已死&#xff0c;但并发未生&#xff1a;无锁Python并发范式的认知重构Python的全局解释器锁&#xff08;GIL&#xff09;长期被视为并发编程的“原罪”&#xff0c;但自CPython 3.13起&#xff0c;GIL在I/O密集型路径中已被条件性移除&#xff0c;而3.14…...

Openclaw中文版落地:nanobot支持中文错误提示、中文文档与本地化调试

Openclaw中文版落地&#xff1a;nanobot支持中文错误提示、中文文档与本地化调试 1. nanobot&#xff1a;超轻量级OpenClaw中文版 nanobot是一款受OpenClaw启发的超轻量级个人人工智能助手&#xff0c;现在全面支持中文环境。这个工具最大的特点是轻量高效&#xff0c;仅需约…...