
策略模式与装饰模式详解:从模拟鸭子到 Java IO 流
策略模式与装饰模式均利用多态实现解耦,但核心意图不同。策略模式侧重于算法的替换,将变化的行为抽离为独立接口,适用于运行时动态切换逻辑,如鸭子飞行方式的选择;装饰模式侧重于功能的增强,通过包装对象来扩展职责,适用于不修改源码的情况下增加功能,如 Java IO 流的缓冲处理。两者区别在于策略是互斥选择,装饰是功能叠加。
博客作者
个人项目创作者
343
已发布文章
12K
博客获赞
881K
博客浏览
第 15 页

策略模式与装饰模式均利用多态实现解耦,但核心意图不同。策略模式侧重于算法的替换,将变化的行为抽离为独立接口,适用于运行时动态切换逻辑,如鸭子飞行方式的选择;装饰模式侧重于功能的增强,通过包装对象来扩展职责,适用于不修改源码的情况下增加功能,如 Java IO 流的缓冲处理。两者区别在于策略是互斥选择,装饰是功能叠加。

Linux 作为开源操作系统的基石,广泛应用于服务器与云计算领域。从零开始讲解 Linux 核心概念,涵盖发行版选择、终端使用、基础命令、文件权限管理及软件包管理等内容。通过实战示例介绍 Vim、Shell 脚本、进程与网络配置,帮助开发者快速上手 Linux 环境,理解系统底层逻辑与运维技能。
逻辑回归是一种用于解决二分类问题的机器学习算法,通过 Sigmoid 函数将线性结果映射为概率。介绍其核心原理、数据预处理、损失函数构建及梯度下降优化过程,并提供基于 Python 的实现代码与可视化建议。涵盖特征标准化、阈值设定及常见问题解答,适合初学者入门理解模型机制与应用场景。

三维人体姿态估计旨在从单目或多目图像中恢复人体关键点的三维空间坐标,广泛应用于虚拟现实、动作捕捉及安防监控等领域。综述了该领域的定义、挑战及主流技术路线,包括基于深度学习的卷积神经网络方法、多视角几何重建以及结合传感器数据的融合方案。通过对比不同算法在精度与效率上的表现,并分析 Human3.6M 等常用数据集特性,探讨了当前技术在遮挡处理、实时性及泛化能力…
通过 FastAPI 构建后端服务,结合 Python requests 库模拟前端客户端,实现了用户注册、登录及信息查看功能。教程详细解析了 HTTP 请求原理、URL 参数传递、数据校验逻辑及前后端交互流程,包含完整的代码示例与运行说明,适合初学者理解 Web API 开发基础。

演示了 browser-tools-mcp 插件在 Cline 中的完整配置流程。首先需安装 Node.js 环境并克隆项目仓库,随后通过 npm 安装并启动 MCP 服务。接着下载并配置浏览器扩展插件,最后在 Cline 中写入对应的 MCP 服务配置 JSON。完成上述步骤后,即可在浏览器端启用调试工具页面,实现 AI 助手对浏览器操作的控制与辅助。

快慢双指针算法用于解决快乐数问题。核心思想是将数字变换过程视为链表环检测,若存在环且环中包含 1 则为快乐数。通过定义快慢指针,快指针每次移动两步,慢指针每次移动一步,若两者相遇且值为 1 则返回真,否则为假。同时回顾了上期重复零数组的题目解法。

Java 设计模式涵盖单例、工厂与代理模式。单例模式保证类仅有一个实例,包含饿汉式与懒汉式两种实现。工厂模式定义创建对象的接口,分离创建与使用过程,便于扩展。代理模式通过中介控制对实际对象的访问,常用于权限校验。这些模式有助于提升代码的可维护性与结构清晰度。

对比了 JetBrains AI Assistant、GitHub Copilot X、文心快码、Cursor、通义灵码等主流 AI 编程工具。涵盖 IDE 原生集成、独立编辑器及云厂商助手,提供按场景(Java 后端、全栈、云原生、隐私敏感)的选型建议。重点分析了本地模型 Ollama 配置与免费工具 Codeium,帮助开发者根据技术栈与隐私需求选择合适…

Python 面向对象编程三大特性包括封装、继承与多态。通过 15 道实战练习题系统梳理这三大特性的实现机制与典型应用场景。内容涵盖银行账户安全封装、属性装饰器控制、私有方法调用、单继承与方法重写、多继承与 MRO、抽象基类实现、Mixin 模式、接口多态、鸭子类型等核心知识点。每道题均提供代码示例、执行结果及深度解析,旨在帮助读者构建完整的 OOP 知识体…

节点小宝 4.0 macOS 客户端正式发布,提供登录即绑定、原生级远程文件管理、强大远程控制及多端无缝同步功能。用户可通过 Mac App Store 搜索获取或更新应用,实现 iPhone、iPad 与 MacBook 间的跨设备远程协作与数据访问。
uv 是速度最快的 Python 包管理和虚拟环境工具之一,完全兼容 pip 命令和 requirements.txt 文件。通过 uv venv 可快速创建环境,uv sync 同步依赖,相比传统 venv+pip 流程提速显著,且支持 lock 文件。推荐使用 uv venv 创建环境,uv sync 同步依赖,并可通过 pyproject.toml 或…

Linux 高级 IO 涉及五种模型:阻塞 IO、非阻塞 IO、信号驱动 IO、多路转接(多路复用)和异步 IO。核心在于等待与拷贝的过程。阻塞 IO 在数据未就绪时挂起进程;非阻塞 IO 轮询检查状态;信号驱动 IO 通过 SIGIO 通知;多路转接允许并发等待多个文件描述符;异步 IO 由内核完成数据拷贝并通知应用。其中多路转接效率最高,因等待时间可重合…

介绍如何在本地通过 Ollama 和 VSCode 扩展 CodeGPT 运行 DeepSeek 模型。步骤包括安装 Ollama 环境、配置 CodeGPT 插件、下载 deepseek-r1 聊天模型及 deepseek-coder 自动补全模型。最终实现在不依赖云端服务的情况下,利用本地大模型进行代码修复、重构、解释及智能提示,保障开发数据隐私与安全。
通过更换国内镜像源可显著提升 Python 包及源码下载速度。文章涵盖临时与永久修改 pip 配置的方法,列出清华、阿里云等常用 PyPI 镜像地址,并提供 CPython 源码仓库的华为云及清华镜像方案。包含验证源是否生效的步骤,以及生产环境部署前测试、私有包处理及内网代理配置等注意事项。

2025 年 10 月 22 日华为发布 HarmonyOS 6,搭载 HarmonyOS 5 的设备已超 2300 万台。系统亮点包括好看好玩的智慧光感、元气心情及锁屏艺术签名;好用的实况窗升级与星河互联架构,支持一碰多分享及 iOS 近场互传;智能方面小艺进化支持方言与 AI 功能,如修图和报告生成;安心层面星盾安全架构升级,具备 AI 防诈与加密分享;…
uv 是 Astral 推出的新一代 Python 工具,旨在统一并替代现有工具链。支持快速安装多个 Python 版本,无需依赖系统 Python。可创建和管理虚拟环境,完全替代 pip 进行依赖管理。相比 pyenv、venv 和 pip 的组合,uv 具有 Rust 编写的高性能优势,且为单一二进制文件。适合新项目开发及多版本并行场景,IDE 兼容性好…

RPC 远程过程调用原理通过隐藏网络细节实现跨进程通信,BRPC 作为百度开源的高性能 C++ 框架在此场景下优势明显。文章涵盖 BRPC 安装配置、Echo 服务代码示例、信道封装管理及基于 ETCD 的服务注册发现监控,提供完整的分布式通信落地方案。

Spring Boot Starter 是企业级微服务架构的关键组件。 Starter 开发全流程,涵盖自动装配原理、配置元数据、健康检查及监控集成。通过分布式锁实战案例,展示从项目结构、核心代码实现到测试发布治理的最佳实践。重点解决多版本兼容、性能优化及故障排查问题,提供生产级 Starter 构建模板,助力团队提升开发效率与组件复用性。

ArchLinux 双系统安装及 Niri 桌面合成器环境配置。涵盖分区调整、GRUB 主题设置、显示管理器 SDDM 配置、显卡驱动(Nvidia/AMD)安装、基础应用包选择、QT 与 GTK 主题统一、输入法 Fcitx5 适配、Xwayland 环境变量处理以及 Niri 与 Sway 生态组件集成方案。解决了默认启动分区大小、Dolphin 主题失…