Skip to content

Repository files navigation

Java 25 设计模式配套代码

24种模式的独立 OOP 示例:GoF 23种,加上简单工厂。每种模式包含完整实现、独立 Demo 和行为测试。

在线文章导航:Java 25 设计模式学习指南 · OOP 与 Gradle 工程基础 · 选型与综合复盘

文章与代码独立维护。文章解释问题背景、对象职责、Mermaid 类图、常见用法、相近模式比较和练习;本仓库提供可以运行与修改的代码,不需要下载文章目录或其他项目。

  • Java Toolchain、编译目标和示例运行环境:JDK 25
  • 构建工具:Gradle Wrapper 9.6.1,包含发行包 SHA-256 校验值。
  • 包名前缀:com.hanserwei.patterns
  • 测试:JUnit Jupiter 5.13.4,共24个测试类、49项行为测试。
  • 规范:Google Java Style;所有显式声明的类、接口、枚举、字段、构造器、方法均有 Javadoc,测试代码同样检查。
  • 运行示例无需外部服务、业务框架或预览特性。默认单线程、进程内内存场景,具体边界写在代码注释和对应文章中。

快速开始

安装完整 JDK 25,使 JAVA_HOME 指向它,在本仓库根目录执行:

git clone https://github.com/Hanserwei/design-patterns-java25.git
cd design-patterns-java25
java -version
./gradlew --version
./gradlew clean check
./gradlew runAll

Windows 使用 gradlew.bat 替换 ./gradlew。首次运行需要联网下载 Wrapper 发行包和依赖;不需要额外安装系统 Gradle。IDE 请打开本目录的 Gradle 项目,并将 Gradle JVM 设置为 JDK 25。

./gradlew -q javaToolchains
./gradlew tasks --group examples
./gradlew runStrategy
./gradlew test --tests 'com.hanserwei.patterns.strategy.PatternTest'

策略示例输出1000和1200,表示600字分别按篇或按每字2分计费的结果。各示例的预期业务输出也记录在 pattern-catalog.json

代码导航

源码根目录为 src/main/java/com/hanserwei/patterns/,测试根目录为 src/test/java/com/hanserwei/patterns/。每个模式都有 Demo 和 PatternTest,包之间不依赖,顶级类型各占一个文件。表中的文章编号用于对应独立发布的系列。

文章编号 模式 源码与测试 运行任务
02 简单工厂 源码 · 测试 runSimplefactory
03 工厂方法 源码 · 测试 runFactorymethod
04 抽象工厂 源码 · 测试 runAbstractfactory
05 建造者 源码 · 测试 runBuilder
06 原型 源码 · 测试 runPrototype
07 单例 源码 · 测试 runSingleton
08 适配器 源码 · 测试 runAdapter
09 桥接 源码 · 测试 runBridge
10 组合 源码 · 测试 runComposite
11 装饰器 源码 · 测试 runDecorator
12 外观 源码 · 测试 runFacade
13 享元 源码 · 测试 runFlyweight
14 代理 源码 · 测试 runProxy
15 责任链 源码 · 测试 runChain
16 命令 源码 · 测试 runCommand
17 解释器 源码 · 测试 runInterpreter
18 迭代器 源码 · 测试 runIterator
19 中介者 源码 · 测试 runMediator
20 备忘录 源码 · 测试 runMemento
21 观察者 源码 · 测试 runObserver
22 状态 源码 · 测试 runState
23 策略 源码 · 测试 runStrategy
24 模板方法 源码 · 测试 runTemplatemethod
25 访问者 源码 · 测试 runVisitor

代码规范与验证

./gradlew formatJava
./gradlew check
./gradlew javadoc

formatJava 通过 google-java-format 1.34.1 格式化生产与测试代码。check 运行 JUnit、Google 格式一致性检查、Checkstyle 10.26.1 Google 配置,以及本项目更严格的 documentationCheck。检查中的任何警告也使构建失败。

注释检查覆盖私有成员、构造器、重写方法、getter、嵌套类与测试。Javadoc 应说明用途、输入约定、状态所有权或失败语义;字段注释应说明含义和单位。简单成员可写单行 Javadoc,复杂 API 可补充参数、返回值和异常标签。仅有注释并不证明说明正确,仍需人工阅读。

结果 本地路径
测试报告 build/reports/tests/test/index.html
生产代码规范报告 build/reports/checkstyle/main.html
测试代码规范报告 build/reports/checkstyle/test.html
全成员注释报告 build/reports/checkstyle/documentationCheck.html
API 文档 build/docs/javadoc/index.html

本轮验证记录见 VALIDATION.md。验证原始记录放在 validation/,其中注释检查的负向探针使用临时工程,未向本仓库加入故意缺失注释的 Java 文件。

推荐练习方式

  1. 单独运行一种模式的 Demo,跟踪构造与调用关系。
  2. 阅读同包测试,先理解失败条件,再改变实现。
  3. 扩展一种产品、算法、状态或元素,保持不相关调用方稳定。
  4. 运行 ./gradlew check,检查行为、格式和注释。

本例中的邮件发送、索引和存储均是内存模拟。缓存没有 TTL 或容量限制,观察者采用同步且失败即中断策略,命令历史要求顺序使用,状态迁移不提供跨线程或数据库原子性。这些是明确的学习范围,扩展时应增加相应契约与测试。

参考与来源

About

Java 25 + Gradle:GoF 23 种设计模式与简单工厂,配套中文教程、完整 OOP 示例及 49 项测试。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages