- 博客(329)
- 资源 (2)
- 收藏
- 关注
原创 TreeSet源码深度解析,核心特性,底层实现,核心方法实现原理,排序机制?
TreeSet 是 “基于 TreeMap 的有序 Set”,其核心设计思想是复用 TreeMap 的红黑树结构和排序能力,自身仅作为 “key 的视图” 存在。这种 “复用现有数据结构” 的设计模式,体现了 Java 集合框架的 “组合优于继承” 原则。(1)底层依赖 TreeMap,元素存储为 key;(2)排序依赖Comparable或Comparator;(3)所有操作最终委托给 TreeMap 实现。
2025-07-29 08:15:45
279
原创 Hashtable源码深度解析,核心要点概览,Entry 节点结构,核心方法,快速失败机制(fail-fast),Hashtable 与 HashMap 的核心区别?
Hashtable 是基于 “数组 + 链表” 的哈希表实现,通过synchronized保证线程安全,但因全表锁导致性能较低。其核心特点:(1)键值均不可为null,初始容量 11,扩容为 2n+1。(2)哈希冲突通过链表处理,查询效率受链表长度影响。(3)快速失败机制用于检测并发修改。目前,Hashtable 已被ConcurrentHashMap替代(后者采用分段锁,并发性能更优),但理解其源码有助于掌握哈希表的基本原理。
2025-07-29 08:14:32
392
原创 HashSet源码深度解析,核心成员变量,核心方法实现原理,特性与注意事项,适用场景?
HashSet 是通过 “复用 HashMap 的 key 存储元素,固定 value 为 PRESENT” 的设计,简洁高效地实现了 Set 接口。其核心优势是基于哈希表的快速增删查(平均 O (1) 时间复杂度),但牺牲了元素的顺序性。理解 HashSet 的源码本质是理解 HashMap 的工作原理,二者在哈希表结构、扩容机制、冲突处理等方面完全一致。若需要保证元素顺序,可使用LinkedHashSet(基于LinkedHashMap);若需要排序,可使用TreeSet(基于TreeMap)。
2025-07-28 16:46:47
416
原创 LinkedList源码深度解析,Node节点结构(双向链表),核心操作,队列 / 栈操作,序列化机制,迭代器与 fail-fast 机制,适用场景?
提供了基于顺序访问的基础实现(如 get、add 等依赖迭代器的方法)。特性说明数据结构双向链表,节点包含 prev、next 引用,无固定容量限制增删效率头部 / 尾部增删 O (1),指定位置增删 O (n)(遍历找位置)访问效率随机访问(get/set)O (n),顺序访问(迭代器)效率高队列 / 栈支持实现 Deque 接口,可作为队列(FIFO)或栈(LIFO)使用线程安全非线程安全,多线程环境需外部同步(如 Collections.synchronizedList)
2025-07-28 11:45:44
580
原创 ArrayList源码深度解析,核心操作,grow扩容机制,序列化机制,迭代器与 fail-fast 机制,适用场景
特性说明数据结构底层是 Object[] 数组,支持随机访问(RandomAccess)容量管理初始容量 10(无参构造首次扩容),默认 1.5 倍扩容,支持手动指定容量增删效率尾部添加 / 删除 O (1),中间插入 / 删除 O (n)(需移动元素)线程安全非线程安全,多线程环境需用 Collections.synchronizedList 包装序列化自定义序列化,只序列化有效元素,优化性能迭代器实现 fail-fast 机制,检测并发修改。
2025-07-28 07:19:55
1098
原创 7.有状态函数
有状态函数是实现StatefulFunction接口的任何类。在下面的示例中,一个StatefulFunction维护应用程序的每个用户的计数,发出自定义的问候语声明了一个将在逻辑类型名称下注册com.example.fns/greeter的欢迎函数。类型名称必须采用<namesapce>/<namesapce>。它包含一个ValueSpec,它隐式地作用于当前地址并存储一个整数。每次向greeter实例发送消息时,它都会被解释为string代表用户名。消息和状态都是强类型的;要么是默认的内置类型之一。
2025-06-29 01:21:43
704
原创 HashMap源码深度解析(核心方法:put、get、resize,初始容量和负载因子,哈希碰撞,HashMap 如何处理哈希碰撞?)
基于哈希表的Map接口(哈希表)实现,提供了所有可选的映射操作,是以key-value存储形式存在,并允许空值和空键,具有高效的插入、查找和删除操作。它的核心数据结构是一个数组,数组中的每个元素是一个链表或红黑树的头节点。HashMap 通过哈希函数将键映射到数组的索引位置,并通过链表或红黑树解决哈希冲突。当元素数量超过阈值时,HashMap 会自动扩容,以保持较低的负载因子,从而保证操作的效率。HashMap类大致相当于Hashtable,不同之处在于它是,这意味着它,HashMap中的映射;
2025-04-01 17:09:42
1078
原创 小白也能搭建的第一个智能体(AI Bot)!!!
AI 智能体是一种通过自主执行任务、多模态交互和工具集成,解决大模型操作局限、提升效率并提供个性化服务的智能实体。
2025-03-12 14:40:21
925
原创 什么是AI Agents智能体?工作原理?AI Agents 开源项目(AutoGPT、BabyAGI、MetaGPT)AI Agents 的应用场景?(AlphaGo围棋、自动驾驶、机器人)
它们在游戏、机器人、金融和医疗等众多领域具有广泛的应用和深远的影响。就好比你在玩一个冒险游戏,你是主角,但你身边有个超级聪明的小伙伴,它能自己去探索地图、寻找宝藏,还能帮你打怪物,这个小伙伴就是 AI agents。比如说,你喜欢在网上购物,AI agents 就像一个贴心的导购,它知道你的喜好、预算和需求,自动帮你筛选出最合适的商品。。
2025-03-06 17:10:23
865
原创 Prompt提示词六种框架(GOAL、START、DREAM、PATH、LEAP、NEED)
包含差距(当前位置与目标的差距)、目标(具体目标)、方法(实现目标的方法步骤)、限制(可能限制目标达成的因素)。
2025-03-06 16:10:33
717
原创 什么是Prompt提示词?怎么使用Prompt提示词?Prompt提示词的使用技巧
它以文本形式向模型提供特定的信息、任务描述或问题框架,以引导模型生成相应的输出。简单来说,它就像是。例如,当我们向语言模型输入“”,这就是一个 Prompt。
2025-03-06 15:16:59
1033
原创 什么是视频AI大模型?视频AI大模型应用场景?(EMO、Ctrl-Adapter、Runway、Dreamina、可灵、Dream Machine)
视频 AI 大模型是一种利用先进的机器学习技术来生成、处理和理解视频内容的大规模人工智能模型(1)生成对抗网络(GANs)由生成器和判别器组成。生成器负责生成逼真的视频,判别器则用于区分真实视频和生成的视频,二者通过对抗训练不断提升生成视频的质量。(2)变分自编码器(VAEs)先通过编码器将输入视频编码为潜在空间的分布,再由解码器从潜在空间生成视频,以此学习视频的潜在表示来生成新视频。(3)扩散模型逐步将噪声转化为清晰的视频,在多步过程中利用深度学习逐步去除噪声,从而生成高质量的视频。
2025-03-06 15:11:32
1461
原创 国外AI大模型(OpenAI、Anthropic、Gemini、Copilot、Llama3、xAI、Groq、BloombergGPT)
我们开发了一系列新的 AI 模型,旨在花更多时间思考,然后再做出响应。他们可以推理完成复杂的任务并解决比以前的科学、编码和数学模型更难的问题。谷歌和 Alphabet 首席执行官桑达尔·皮查伊 (Sundar Pichai) 的注释:每一次技术变革都是推进科学发现、加速人类进步和改善生活的机会。我相信我们现在所看到的人工智能转变将是我们一生中最深刻的转变,远远大于之前向移动或网络的转变。人工智能有潜力为世界各地的人们创造从日常生活到非凡的机会。
2025-02-11 22:07:52
1726
原创 国内AI大模型(阿里通义、百度文心一言、字节豆包、月之暗面Kimi、腾讯混元、讯飞星火、京东言犀、紫东太初、天工昆仑万维)
阿里达摩院作为阿里巴巴集团旗下的全球研究机构,在机器智能、数据计算、机器人、金融科技等领域取得了显著成果。其研究成果不仅为阿里巴巴集团的发展提供了有力支持,也为全球科技进步做出了积极贡献。未来,阿里达摩院将继续致力于探索科技未知,推动技术创新和应用落地,为人类社会的发展做出更大贡献。月之暗面 (Moonshot AI) 创立于2023年3月,致力于寻求将能源转化为智能的最优解,通过产品与用户共创智能,2023年10月推出全球首个支持输入20万汉字的智能助手产品Kimi。。
2025-01-21 16:17:41
2923
原创 什么是生成式人工智能(Gen AI)?什么是生成式预训练Transformer模型?如何实现GPT模型的训练?
生成式人工智能(也称为生成式 AI 或 gen AI)是一种可以创建新的内容和想法(包括对话、故事、图像、视频和音乐)的 AI。它可以学习人类语言、编程语言、艺术、化学、生物学或任何复杂的主题,也可以重复利用已知知识来解决新问题。例如,学习英语词汇并根据其处理的字词创作一首诗。您可以将生成式人工智能用于各种用途,例如聊天机器人、媒体创作以及产品开发和设计。生成式预训练Transfomer模型是一种基于互联网的、可用数据来训练的、文本生成的深度学习模型。
2025-01-20 17:55:40
1165
原创 什么是NLP(Natural Language Processing, NLP)自然语言处理?NLP 如何工作?实际应用场景?
自然语言处理(NLP)技术或 NLP 任务将人类文本或语音分解为计算机程序可以轻松理解的较小部分。以下提供 NLP 中常见的文本处理和分析功能。。
2025-01-12 17:46:37
1577
原创 什么是LLM 大语言模型(Large Language Models, LLM),大语言模型的关键组成部分?大型语言模型如何运作?如何训练大型语言模型?
大语言模型 (LLM) 是一种深度学习算法,可以执行各种自然语言处理 (natural language processing - NLP) 任务。大型语言模型使用 Transformer 模型,并使用大量数据集进行训练 —— 因此规模很大。这使他们能够识别、翻译、预测或生成文本或其他内容。大型语言模型也称为神经网络(neural network - NN),是受人脑启发的计算系统。这些神经网络使用分层的节点网络来工作,就像神经元一样。除了向人工智能 (AI) 应用训练人类语言。
2025-01-12 16:35:59
1160
原创 AI大模型的定义、特点、发展阶段、发展现状,大模型能帮我解决什么,AI大模型相关能力?(语音识别、机器学习、神经网络...)
语音转文本是一种语音识别软件,可通过计算语言学将口语识别和翻译成文本,也被称为语音识别或计算机语音识别。特定的应用程序、工具和设备可以实时将音频流转录为显示文本,并对其进行操作。机器学习是一门开发算法和统计模型的科学,计算机系统使用这些算法和模型,在没有明确指令的情况下,依靠既有模式和推理来执行任务。计算机系统使用机器学习算法来处理大量历史数据,并识别数据模式。这可让计算机系统根据给出的输入数据集更准确地预测结果。
2025-01-12 15:41:52
2075
原创 人工智能(Artificial Intelligence)是什么?人工智能有什么好处?AI应用架构的关键组成?人工智能实施面临哪些挑战?
了解人工智能向何处去,首先要知道人工智能从何处来。人工智能是研究开发能够模拟、延伸和扩展人类智能的理论、方法、技术及应用系统的一门新的技术科学,研究目的是促使智能机器会听(语音识别、机器翻译等)、会看(图像识别、文字识别等)、会说(语音合成、人机对话等)、会思考(人机对弈、定理证明等)、会学习(机器学习、知识表示等)、会行动(机器人、自动驾驶汽车等)。人工智能充满未知的探索道路曲折起伏。如何描述人工智能自1956年以来60余年的发展历程,学术界可谓仁者见仁、智者见智。1956年—20世纪60年代初。
2025-01-09 18:53:20
7224
原创 什么是 Docker?为什么使用 Docker?Docker镜像(Image)、容器(Container)和仓库(Repository )
特性容器虚拟机启动秒级分钟级硬盘使用一般为 MB一般为 GB性能接近原生弱于系统支持量单机支持上千个容器一般几十个。
2025-01-05 17:39:16
928
原创 8.Flink事件驱动应用、处理函数(Process Functions),KeyedProcessFunction、ProcessFunction,旁路输出(Side Outputs)
OutputTag 用于标识侧输出流。它通常是通过泛型指定类型的。旁路输出标签,用于标识侧输出流的类型。在定义时,必须明确输出流的数据类型。Flink 使用它来区分不同的侧输出流。// 定义一个字符串类型的侧输出流标签。
2024-10-18 16:54:10
966
原创 7.Flink数据管道 & ETL(无状态的转换、Keyed Stream 的聚合、有状态的转换)
(1)keyBy() 是无状态的,它将数据流按指定的键进行分组,不涉及状态管理。(2)在 keyBy() 分组之后,数据流被逻辑上分区,后续的操作(如 sum(), min(), reduce() 等)将基于分组后的数据进行计算。(3)keyBy() 非常适合分组聚合场景,如根据用户、设备或其他关键字段进行分组统计或计算。通过 keyBy(),Flink 能高效地处理大规模数据流中的分组操作,将具有相同键的数据发送到同一个分区以便后续的聚合或计算操作。
2024-10-15 21:45:09
1061
原创 4.Flink流处理、自定义时间流处理、有状态流处理及其容错
目录Flink流处理、自定义时间流处理、有状态流处理及其容错流处理(1)批处理:有界数据流(2)流处理:无界数据流并行 Dataflows(1)一对一模式:保留元素的分区和顺序(2)重新分发模式:聚合结果到达 Sink 的顺序是不确定自定义时间流处理有状态流处理算子的状态(1)无状态(2)有状态通过状态快照和流重放实现的容错在自然环境中,数据的产生原本就是流式的。无论是来自 Web 服务器的事件数据,证券交易所的交易数据,还是来自工厂车间机器上的传感器数据,其数据都是流式的。
2024-10-15 17:25:12
1150
原创 解释器模式【Interpreter Pattern】,什么是解释器模式?作用?优缺点?应用场景?主要角色?
目录什么是解释器模式?解释器模式的作用?解释器模式的优缺点优点(1)易于扩展(2)灵活性高(3)代码清晰缺点(1)性能问题(2)难以维护(3)扩展性受限解释器模式应用场景(1)编译器或解释器开发(2)规则引擎(3)命令执行器(3)正则表达式引擎解释器模式的主要角色?(1)抽象表达式(Abstract Expression)(2)终结符表达式(Terminal Expression)(3)非终结符表达式(Non-Terminal Expression)(4)上下文(Context)
2024-09-08 17:02:30
1274
原创 中介者模式【Mediator Pattern】,什么是中介者模式?作用?主要对象?优缺点?应用场景?实现案例?
目录什么是中介者模式?中介者模式的作用?(1)减少对象之间的耦合(2)优化对象通信逻辑(3)提高系统的可扩展性和可维护性中介者模式的主要对象(1)中介者(Mediator)(2)具体中介者(Concrete Mediator)(3)抽象同事类(Colleague)(4)具体同事类(Concrete Colleague)中介者模式的优缺点优点(1)降低耦合度(2)集中控制交互(3)更好的扩展性缺点(1)中介者的复杂性增加(2)可能导致性能问题中介者模式应用场景(1)GUI开发(2)网络协议栈(3)消息中间件。
2024-09-08 16:23:20
1371
原创 访问者模式【Visitor Pattern】,什么是访问者模式?作用?主要角色?优缺点?应用场景?访问者模式实现案例?
目录什么是访问者模式?访问者模式的作用?访问者模式的主要角色(1)Visitor(访问者)(2)ConcreteVisitor(具体访问者)(3)Element(元素)(4)ConcreteElement(具体元素)(5)ObjectStructure(对象结构)访问者模式优缺点优点(1)遵循开放-关闭原则(2)简化复杂对象的操作(3)统一操作逻辑缺点(1)难以增加新的元素类型(2)破坏封装性(3)复杂性增加访问者模式应用场景访问者模式实现案例1、定义访问者(Visitor,员工工资、报表)抽象访问者。
2024-09-08 01:00:27
960
原创 状态模式【State Pattern】,什么是状态模式?主要角色?主要作用?优缺点?适用场景?状态模式实现案例?
目录什么是状态模式?状态模式主要角色(1)Context(上下文)(2)State(状态)(3)ConcreteState(具体状态)状态模式的主要作用(1)将状态逻辑集中管理(2)避免使用大量的条件判断(3)增加系统的灵活性状态模式的优缺点优点(1)清晰的结构(2)易于扩展(3)减少条件判断缺点(1)类数量增加(2)复杂性状态模式适用场景(1)状态行为变化复杂的对象(2)行为依赖于状态的对象(3)需要在运行时动态改变行为的对象状态模式实现案例1、定义上下文2、状态抽象类(State)
2024-09-07 23:38:17
1025
原创 备忘录模式【Memento Pattern】,什么是备忘录模式?工作原理?优缺点?主要角色?使用场景?实现案例?
目录什么是备忘录模式?备忘录模式工作原理备忘录模式优缺点优点(1)保持封装性(2)支持撤销/恢复操作(3)灵活性缺点(1)内存开销大(2)管理复杂备忘录模式主要角色(1)备忘录(Memento)(2)原发器(Originator)(3)管理者(Caretaker)备忘录模式使用场景(1)需要保存和恢复对象的历史状态(2)希望不暴露对象的内部状态(3)需要进行事务回滚备忘录模式实现案例(1)备忘录(Memento)(2)文本编辑器(原发器,Originator)
2024-09-06 23:54:36
785
原创 命令模式【Command Pattern】,什么是命令模式?作用?优缺点?主要角色?应用场景?实现案例?
目录什么是命令模式?命令模式的作用(1)解耦调用者和接收者(2)延迟执行和记录日志(3)支持撤销和重做(4)增加灵活性命令模式优缺点优点(1)降低耦合性(2)扩展性强(3)支持撤销与重做(4)组合复杂操作缺点(1)命令类数量增加(2)实现成本较高命令模式的主要角色(1)命令接口(Command)(2)具体命令类(ConcreteCommand)(3)调用者(Invoker)(4)接收者(Receiver)(5)客户端(Client)角色之间的关系示例关系图命令模式应用场景(1)GUI按钮与菜单操作。
2024-09-06 23:23:07
1089
原创 责任链模式【Chain of Responsibility Pattern】,什么是责任链模式?核心思想?结构?作用?优缺点?实现案例?
目录什么是责任链模式?责任链模式的核心思想责任链模式的结构(1)抽象处理者(Handler)(2)具体处理者(ConcreteHandler)(3)客户端(Client)责任链模式的UML类图责任链模式的作用(1)解耦请求的发送者与接收者(2)灵活地分配职责(3)请求的链式传递责任链模式的优缺点优点(1)降低耦合度(2)增强系统的灵活性(3)符合单一职责原则缺点(1)可能导致请求无法处理(2)调试困难(3)性能开销责任链模式的应用场景(1)审批流程(2)事件处理机制(3)日志处理(4)Web请求处理。
2024-09-06 16:10:46
998
原创 迭代器模式【Iterator Pattern】,什么是迭代器模式?作用?优缺点?应用场景?典型应用?实现案例?
目录什么是迭代器模式(Iterator Pattern)?迭代器模式核心思想迭代器模式结构(1)迭代器接口(Iterator)(2)具体迭代器(Concrete Iterator)(3)聚合接口(Aggregate)(4)具体聚合(Concrete Aggregate)迭代器模式的作用(1)简化集合遍历(2)解耦遍历算法和集合(3)统一访问方式迭代器模式的优缺点优点(1)遍历过程封装:迭代器封装了遍历集合的逻辑,简化了集合的访问操作,并且提供了一个统一的访问接口。(2)解耦遍历算法与集合对象。
2024-09-06 15:04:15
1166
原创 观察者模式【Observer Pattern】,什么是观察者模式?作用?优缺点?观察者模式实现?
目录什么是观察者模式?观察者模式作用?观察者模式优缺点优点缺点观察者模式包含角色(1)抽象主题 (Subject)(2)具体主题 (Concrete Subject)(3)抽象观察者 (Observer)(4)具体观察者 (Concrete Observer)观察者模式实现方式观察者模式实现1、实现Observable(被观察者)2、实现Observer(李斯、王斯、刘斯)3、Client(使用观察者)
2024-09-06 13:40:52
1465
原创 模板方法模式【Template Method Pattern】, 什么是模板方法模式?核心思想?结构?优缺点?模板方法实现案例?
目录什么是模板方法模式?模板方法模式核心思想模板方法模式结构(1)抽象类(Abstract Class)(2)具体子类(Concrete Class)模板方法模式优缺点优点(1)复用代码(2)遵循开闭原则(3)灵活性和扩展性(1)增加类的复杂性(2)限制子类的自由模板方法模式应用场景(1)算法步骤固定但实现不同的场景(2)避免代码重复(3)流程控制模板方法实现案例1、定义一个车辆模型(抽象)2、实现类H1、H2,具体子类(Concrete Class)3、模版方法模式使用。
2024-09-06 13:40:24
1125
原创 策略模式【Strategy Pattern】,什么是策略模式?核心思想?角色?优缺点?应用场景?略模式实现案例?
目录什么是策略模式?策略模式核心思想策略模式的角色(1)策略接口(Strategy)(2)具体策略类(Concrete Strategy)(3)上下文类(Context)策略模式的优缺点优点(1)遵循开闭原则(2)消除条件判断(3)提高代码灵活性和可维护性(4)代码复用性强缺点(1)增加了类的数量(2)客户端必须了解不同的策略(3)策略间可能产生冗余策略模式的应用场景(1)多个算法可以替换使用(2)消除冗长的条件判断(3)算法的实现需要与使用分离策略模式的典型应用(1)支付系统(2)排序算法选择。
2024-09-06 12:54:30
1325
原创 享元模式【Flyweight Pattern】,什么是享元模式?核心思想?角色组成?优点和缺点?享元模式应用场景?实现案例?
目录什么是享元模式?享元模式的核心思想享元模式的角色组成(1)抽象享元(Flyweight)(2)具体享元(Concrete Flyweight)(3)非享元(Unsharable Flyweight)(4)享元工厂(Flyweight Factory)享元模式的优点和缺点优点(1)减少内存使用(2)提高性能(3)线程安全缺点(1)实现复杂(2)过度共享(3)增加代码复杂度享元模式应用场景(1)图形界面元素的重复显示(2)游戏中的对象管理(3)网络连接和数据库连接池(4)缓存系统。
2024-09-06 11:23:44
1169
原创 组合模式【Composite Pattern】,什么是组合模式?结构?优缺点?主要角色?组合模式应用场景?实现案例?
目录什么是组合模式?组合模式结构组合模式优缺点优点(1)清晰的层次结构(2)统一操作(3)增加新的构件简单(4)符合开闭原则(5)灵活性缺点(1)设计较复杂(2)不容易限制组件类型(3)性能开销(4)难以进行复杂的操作组合模式主要角色(1)抽象角色(Component)(2)树叶角色(Leaf)(3)树枝角色(Composite)组合模式应用场景(1)文件系统(2)图形绘制系统(3)UI 组件树(4)企业组织结构(5)菜单系统(6)产品目录管理(7)任务管理系统(8)权限管理系统组合模式实现。
2024-09-05 23:34:36
1124
原创 桥梁模式【Bridge Pattern】,什么是桥梁模式?核心思想?优缺点?主要角色?桥梁模式实现?
目录什么是桥梁模式?桥梁模式核心思想桥梁模式优缺点优点(1)分离抽象和实现(2)提高系统的可扩展性(3)符合开闭原则(4)减少子类的数量缺点(1)增加系统的复杂性(2)需要充分理解设计问题桥梁模式主要角色(1)抽象(Abstraction)(2)扩展抽象(Refined Abstraction)(3)实现接口(Implementor)(4)具体实现类(Concrete Implementor)桥梁模式的应用场景?(1)当系统需要在抽象和实现之间添加更多的灵活性时(2)当不希望在抽象类中直接实现功能时。
2024-09-05 21:58:13
1093
原创 门面模式【Facade Pattern】,什么是门面模式?核心概念?主要角色?优缺点?应用场景?门面模式实现?
目录什么是门面模式?门面模式核心概念(1)简化接口(2)解耦客户端与子系统(3)分离关注点门面模式主要角色(1)门面角色(Facade)(2)子系统角色(SubSystem)门面模式优缺点优点(1)简化复杂系统的接口(2)松散耦合(3)更好的层次化结构(4)代码可读性和维护性提高(5)兼容单一职责原则缺点(1)隐藏了系统的部分功能(2)可能引入不必要的复杂性(3)性能开销(4)可能掩盖问题门面模式应用场景(1)简化复杂系统的使用(2)为旧系统提供兼容接口(3)分层开发系统(4)构建库或框架时。
2024-09-05 20:57:00
1286
原创 代理模式【Proxy Pattern】,什么是代理模式?主要角色?代理模式分类?优缺点?应用场景?代理模式实现?
目录什么是代理模式?代理模式的主要角色(1)抽象主题(Subject)(2)真实主题(Real Subject)(3)代理(Proxy)代理模式分类(1)静态代理(2)动态代理代理模式优缺点优点(1)控制对真实对象的访问(2)增强对象的功能(3)延迟初始化(4)支持远程访问(5)符合开闭原则缺点(1)增加了系统复杂度(2)性能开销(3)可能滥用代理(4)调试难度增大代理模式应用场景(1)远程代理(2)虚拟代理(3)保护代理(4)缓存代理(5)日志代理代理模式实现。
2024-09-05 15:02:39
1013
原创 装饰器模式【Decorator Pattern】,什么是装饰模式?核心思想?结构?优缺点?应用场景?
目录什么是装饰模式?装饰模式核心思想装饰模式结构(1)抽象构件(Component)(2)具体构件(Concrete Component)(3)抽象装饰(Decorator)(4)具体装饰(ConcreteDecorator)装饰模式优缺点优点缺点装饰模式应用场景(1)动态地给对象添加额外的职责(2)扩展功能更加灵活(3)符合开闭原则(4)透明地给单个对象添加职责装饰模式实现1、成绩单的抽象类2、实现类(四年级成绩单)
2024-09-05 03:04:11
984
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人