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

Java 设计模式・总结目录篇:从思想到代码实现

一、创建型模式在面向对象的世界里如何优雅地创建对象是每一位开发者都会反复思考的问题。直接new一个对象固然简单但当业务复杂度上升、依赖关系变得盘根错节时这种方式就会让代码变得僵硬、难以维护。创建型设计模式正是为了解决这一痛点而诞生的一套思想体系。它们将对象的创建与使用分离通过封装、抽象和延迟实例化等手段让代码更具灵活性、可扩展性和可测试性。1.1单例设计模式单例模式 (Singleton)确保一个类在整个应用中仅有一个实例并提供一个全局访问点。Java 设计模式・单例模式篇从思想到代码实现-CSDN博客1.2 简单工厂工厂方法抽象工厂模式工厂方法模式 (Factory Method)定义一个创建对象的接口让子类决定实例化哪一个类将实例化逻辑延迟到子类。抽象工厂模式 (Abstract Factory)提供一个创建一系列相关或依赖对象的接口而无需指定它们具体的类。Java 设计模式・工厂模式篇从思想到代码实现-CSDN博客1.3 建造者模式建造者模式 (Builder)将一个复杂对象的构建与它的表示分离使得同样的构建过程可以创建不同的表示。Java 设计模式・建造者模式篇从思想到代码实现-CSDN博客1.4 原型模式原型模式 (Prototype)用原型实例指定创建对象的种类并且通过拷贝这个原型来创建新的对象。Java 设计模式・原型模式篇从思想到代码实现-CSDN博客二、结构型模式在面向对象的世界里如何优雅地组织类与对象、构建更大的结构是每一位开发者都会反复思考的问题。直接堆砌类和继承固然简单但当业务复杂度上升、类间关系变得盘根错节时这种方式就会让代码变得臃肿、难以维护。结构型设计模式正是为了解决这一痛点而诞生的一套思想体系。它们关注如何将类或对象按某种布局组合成更大的结构通过组合、代理、适配和装饰等手段让代码更具灵活性、可复用性和可维护性。2.1 代理模式代理模式 (Proxy)为其他对象提供一种代理以控制对这个对象的访问实现延迟加载、权限控制等。Java 设计模式・代理模式篇从思想到代码实现-CSDN博客2.2 适配器模式适配器模式 (Adapter)将一个类的接口转换成客户期望的另一个接口让原本不兼容的类可以协同工作。Java 设计模式・适配器模式篇从思想到代码实现-CSDN博客2.3 装饰器模式装饰器模式 (Decorator)动态地给一个对象添加额外的职责比生成子类更灵活地扩展功能。Java 设计模式・装饰器模式篇从思想到代码实现-CSDN博客2.4 桥接模式桥接模式 (Bridge)将抽象部分与它的实现部分分离使它们都可以独立地变化避免类爆炸。Java 设计模式・桥接模式篇从思想到代码实现-CSDN博客2.5 外观模式外观模式 (Facade)为子系统中的一组接口提供一个统一的高层接口使子系统更容易使用。Java 设计模式・外观模式篇从思想到代码实现-CSDN博客2.6 组合模式组合模式 (Composite)将对象组合成树形结构以表示 “部分 - 整体” 的层次关系使客户端对单个对象和组合对象的使用具有一致性。Java 设计模式・组合模式篇从思想到代码实现-CSDN博客2.7 享元模式享元模式 (Flyweight)运用共享技术有效地支持大量细粒度的对象减少内存占用。​Java 设计模式・享元模式篇从思想到代码实现-CSDN博客三、行为型模式在面向对象的世界里如何优雅地组织对象间的交互、分配职责是每一位开发者都会反复思考的问题。直接硬编码交互逻辑固然简单但当业务复杂度上升、对象协作关系变得错综复杂时这种方式就会让代码变得僵化、难以扩展。行为型设计模式正是为了解决这一痛点而诞生的一套思想体系。它们关注如何定义对象之间的通信方式和职责分配通过命令、迭代、观察者、策略等手段让对象间的协作更具灵活性、可复用性和可维护性。3.1 模板方法模式模板方法模式 (Template Method)定义一个操作中的算法的骨架而将一些步骤延迟到子类中使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。Java 设计模式・模板方法模式篇从思想到代码实现-CSDN博客3.2 策略模式策略模式 (Strategy)定义一系列的算法把它们一个个封装起来并且使它们可相互替换让算法独立于使用它的客户而变化。Java 设计模式・策略模式篇从思想到代码实现-CSDN博客3.3 命令模式命令模式 (Command)将一个请求封装为一个对象从而使你可以用不同的请求对客户进行参数化支持可撤销操作。Java 设计模式・命令模式篇-CSDN博客3.4 责任链模式责任链模式 (Chain of Responsibility)将请求的发送者和接收者解耦使多个对象都有机会处理这个请求形成一条处理链。Java 设计模式・责任链模式篇从思想到代码实现-CSDN博客3.5 状态模式状态模式 (State)允许一个对象在其内部状态改变时改变它的行为对象看起来似乎修改了它的类。Java 设计模式・状态模式篇从思想到代码实现-CSDN博客3.6 观察者模式观察者模式 (Observer)定义对象间的一种一对多的依赖关系当一个对象的状态发生改变时所有依赖它的对象都得到通知并被自动更新。Java 设计模式・观察者模式篇从思想到代码实现-CSDN博客3.7 中介者模式中介者模式 (Mediator)用一个中介对象来封装一系列的对象交互使各对象不需要显式地相互引用从而降低耦合。3.8 迭代器模式迭代器模式 (Iterator)提供一种方法顺序访问一个聚合对象中的各个元素而又不暴露其内部的表示。3.9 访问者模式访问者模式 (Visitor)表示一个作用于某对象结构中的各元素的操作它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。3.10 备忘录模式备忘录模式 (Memento)在不破坏封装性的前提下捕获一个对象的内部状态并在该对象之外保存这个状态以便以后恢复。3.11 解释器模式解释器模式 (Interpreter)给定一个语言定义它的文法的一种表示并定义一个解释器这个解释器使用该表示来解释语言中的句子。

相关文章:

Java 设计模式・总结目录篇:从思想到代码实现

一、创建型模式 在面向对象的世界里,如何优雅地创建对象,是每一位开发者都会反复思考的问题。直接 new 一个对象固然简单,但当业务复杂度上升、依赖关系变得盘根错节时,这种方式就会让代码变得僵硬、难以维护。 创建型设计模式正…...

Matlab实战:用贝叶斯优化LSTM超参数提升回归预测精度(附完整代码)

Matlab实战:用贝叶斯优化LSTM超参数提升回归预测精度(附完整代码) 在机器学习领域,超参数调优一直是让开发者头疼的问题。特别是对于LSTM这类复杂的时间序列模型,手动调参不仅耗时耗力,还很难达到理想效果。…...

3步解锁消息掌控权:开源工具如何终结撤回困扰

3步解锁消息掌控权:开源工具如何终结撤回困扰 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://gitcode.com/GitHub…...

大模型面试题1:简述大模型(LLM)的定义,与传统NLP模型的核心区别是什么?

🎪 摸鱼匠:个人主页 🎒 个人专栏:《大模型岗位面试题》 🥇 没有好的理念,只有脚踏实地! 文章目录一、面试官到底在考什么?(考点剖析)二、核心原理解析&…...

PROJECT MOGFACE数据安全部署:基于内网穿透的本地开发测试方案

PROJECT MOGFACE数据安全部署:基于内网穿透的本地开发测试方案 你是不是也遇到过这样的开发困境?手头有一个像PROJECT MOGFACE这样功能强大的AI项目,想在本地快速搭建起来进行开发和测试,但数据又非常敏感,或者公司网…...

YOLO12实时目标检测模型V1.0:5分钟快速部署,131FPS极速体验

YOLO12实时目标检测模型V1.0:5分钟快速部署,131FPS极速体验 1. 引言 如果你正在寻找一个能快速上手、性能强悍的目标检测工具,那么YOLO12的最新版本绝对值得你花5分钟了解一下。 想象一下这样的场景:你需要从监控视频里实时统计…...

【3GPP 6G】3GPP 6G 场景与需求研究报告 (TR 38.914) 深度解析

一、 报告背景与核心愿景 2023年6月,ITU-R WP5D 制定完成了 ITU-R M.2160 建议书中的“6G 框架”,相比 IMT-2020,该框架提出了全新及扩展的使用场景与网络能力。为了响应 ITU-R 对 IMT-2030 无线接口技术最低技术性能要求(TPR&am…...

Win11系统重装完整指南【默默提升实验室版】

一、重装前的准备工作 1. 1备份重要数据优先级项目备份位置建议🔴 紧急桌面文件、文档、下载文件夹外置硬盘/云盘🔴 紧急浏览器书签、保存的密码导出HTML/密码管理器🔴 紧急驱动备份【关键】使用驱动精灵或官方工具备份当前驱动🟡…...

⋐ 11-1 ⋑ 软考高项 | 第 6 章:项目管理概论 [ 上 ]

点赞 💡 为热爱充电 | 关注 🌐 为同行导航 收藏 📎 为价值存档 | 评论 ✨ 为共鸣发声 目录 1.PMBOK的发展 1.1 PMBOK第七版-12项项目管理原则 1.2 PMBOK第七版-8大项目绩效域 2.项目基本要素 2.1 项目基础 2.1.1 什么是项目…...

LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置(C语言 | 二分查找)

一、题目描述给你一个按照 非递减顺序排列 的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的 开始位置 和 结束位置。如果数组中不存在目标值 target,返回 [-1,-1]。要求算法时间复杂度必须为:O(log n)示例:输…...

LeetCode 189. 轮转数组(C语言详解|三种解法 + 图解)

一、题目描述给定一个整数数组 nums,将数组中的元素 向右轮转 k 个位置。示例:示例 1输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4]过程:右移1次: [7,1,2,3,4,5,6] 右移2次: [6,7,1,2,3,4,5] 右移3次: [5,6,7,1,2,3,4]示例 2输入…...

eNSP 常用设置整理:接口显示、字体调整与 CLI 窗口模式

在使用 eNSP 做实验时,有几个设置建议提前调整,可以让实验调试更加直观,也能提升使用体验。下面整理几个比较常用的设置。一、显示所有接口在实验拓扑中,如果设备较多,仅通过连线有时很难判断接口对应关系。点击菜单栏…...

“养龙虾”太贵?焱融AI存储让OpenClaw Agent实现降本提效

继去年年初 DeepSeek 点燃 AI 推理浪潮之后,2026 年年初,OpenClaw 开启了 Agent 范式变革。这款图标酷似红色龙虾的开源 AI 智能体,凭借其连接 12 消息平台、控制浏览器、执行Shell命令、自动化处理邮件和 PPT 等全能表现,迅速引爆…...

#AI原生安全,2026,AI风险治理如何落地?悬镜安全问境AIST给出答案当AI开始写代码、当智能体开始做决策,你的安全体系还跟得上吗?

2026,AI风险治理如何落地?悬镜安全问境AIST给出答案当AI开始写代码、当智能体开始做决策,你的安全体系还跟得上吗?大模型正在重塑每一个行业。但在欢呼效率提升的同时,一个幽灵正在企业IT架构中徘徊——AI原生安全风险…...

从问题出发设计产品:Problem First 方法

——面向高级产品负责人的产品设计方法论 目录 一、什么是 Problem First 方法 二、为什么 IoT 产品更需要 Problem First 1 硬件开发成本高 2 IoT产品同质化严重 3 用户真正关心的是问题 三、Problem First 方法的核心模型 四、五步构建 Problem First 产品 第一步&a…...

2025_NIPS_Generalizable Insights for Graph Transformers in Theory and Practice

文章核心总结与创新点 主要内容 本文聚焦图Transformer(GT)领域理论与实践的脱节问题,提出通用距离Transformer(GDT)架构,基于标准注意力机制整合近年GT关键进展。通过理论分析证明GDT的表达能力与广义距离魏斯费勒-莱曼算法(GD-WL)等价,同时系统研究了位置编码(PE…...

突破3大瓶颈:Waydroid镜像加速全攻略

突破3大瓶颈:Waydroid镜像加速全攻略 【免费下载链接】waydroid Waydroid uses a container-based approach to boot a full Android system on a regular GNU/Linux system like Ubuntu. 项目地址: https://gitcode.com/gh_mirrors/wa/waydroid Waydroid作为…...

LumiPixel Canvas Quest商业人像摄影应用:一键生成模特级宣传照

LumiPixel Canvas Quest商业人像摄影应用:一键生成模特级宣传照 1. 惊艳的商业摄影新选择 想象一下,你的电商店铺需要一组专业级模特展示新品,但预算有限请不起专业摄影师和模特。或者你的自媒体账号急需高质量人像配图,却找不到…...

Ollama+granite-4.0-h-350m:小白也能搞定的边缘AI部署全攻略

Ollamagranite-4.0-h-350m:小白也能搞定的边缘AI部署全攻略 1. 为什么选择granite-4.0-h-350m? 1.1 轻量级模型的独特优势 granite-4.0-h-350m是一款仅有3.5亿参数的轻量级指令模型,特别适合在资源有限的边缘设备上运行。与动辄数百亿参数…...

如何用Yi Hack V3开源固件解决老摄像机智能化难题?完整指南

如何用Yi Hack V3开源固件解决老摄像机智能化难题?完整指南 【免费下载链接】yi-hack-v3 Alternative Firmware for Xiaomi Cameras based on Hi3518e Chipset 项目地址: https://gitcode.com/gh_mirrors/yi/yi-hack-v3 老旧小米摄像机功能单一、依赖云服务且…...

Qwen3-Embedding-4B部署指南:SGlang服务启动与API调用

Qwen3-Embedding-4B部署指南:SGlang服务启动与API调用 1. Qwen3-Embedding-4B模型简介 1.1 核心能力概述 Qwen3-Embedding-4B是通义千问系列最新推出的文本嵌入模型,专为语义理解任务设计。作为中等规模的4B参数模型,它在多语言支持、长文…...

PowerBI项目监控必看:用红绿灯打造领导最爱看的预警报表

PowerBI项目监控实战:用红绿灯设计高影响力预警仪表盘 在项目管理中,数据可视化从来不只是简单的图表堆砌,而是决策信息的艺术化表达。作为微软生态中最强大的商业智能工具之一,PowerBI正在重新定义项目监控的方式——当传统表格…...

互联网高并发场景:MogFace-large在社交平台图片审核中的落地实践

互联网高并发场景:MogFace-large在社交平台图片审核中的落地实践 1. 引言 想象一下,一个大型社交平台,每天有数千万甚至上亿张图片被用户上传。这些图片里,有自拍、有风景、有宠物,当然,也可能混杂着一些…...

重新定义Android选择交互体验:WheelPicker物理级轮盘组件技术解析

重新定义Android选择交互体验:WheelPicker物理级轮盘组件技术解析 【免费下载链接】WheelPicker Simple and fantastic wheel view in realistic effect for android. 项目地址: https://gitcode.com/gh_mirrors/wh/WheelPicker 在移动应用开发中&#xff0c…...

《服务器测试百日学习计划——Day6:NVMe架构深挖,搞懂controller、namespace和NVMe为什么快》

大家好,我是JACK,本篇是服务器测试百日学习计划Day6。 Day5 我们搞清楚了存储体系全景,今天往下钻一层——深挖 NVMe 架构,搞懂 NVMe 为什么快,以及 controller、namespace 到底是什么。 一、四个最容易混的词 先把这四…...

灵毓秀-牧神-造相Z-Turbo在YOLOv11目标检测中的应用

灵毓秀-牧神-造相Z-Turbo在YOLOv11目标检测中的应用 1. 引言 目标检测是计算机视觉领域的核心任务之一,但在实际应用中常常面临图像质量不佳、目标遮挡、光照变化等挑战。传统的目标检测模型在处理复杂场景时,往往因为输入图像的质量限制而影响检测精度…...

AI替代不了芯片工程师?别太乐观,也别太悲观

每次技术革命,都会消灭一批旧岗位,创造一批新岗位。纺织机出来,手工织工失业了,但纺织厂的机械工程师需求量暴增。EDA工具普及之后,手工布线工程师消失了,但数字IC前端、后端工程师的岗位大量涌现。这次AI浪…...

CCAA | 2025年10月认证通用基础考试真题参考答案

一、单选题(每题 1 分,共 30 题)1.认证类型按对象划分,不包括()A. 产品认证 B. 管理体系认证 C. 服务认证 D. 政府机构认证答案:D解析:认证对象为产品、过程、管理体系、服务、人员。…...

Qt导航栏组件C01:IDE风格项目浏览器

目录 一、引言 二、最终效果预览 三、核心实现原理 3.1 布局结构设计 3.2 核心技术点 四、代码实现详解 4.1 项目结构 4.2 导航组件的核心代码 4.3 样式表设计 五、总结 源码下载 系列编号:C-01 导航风格:深色单栏侧边栏,多级树形文件导航,支持文件类型过滤与名称搜索,右侧…...

机械臂视觉抓取(三):从手眼标定到实际抓取

机械臂视觉抓取:从手眼标定到实际抓取 上一篇文章记录了机械臂手眼标定的两种方式(注意都是基于单相机),以眼在手上为例,可以通过棋盘格标定出相机坐标系和夹爪坐标系的关系。标定出这个关系,怎么通过视觉指…...