Tidak Ada Deskripsi

檀烈 6b978f8ca0 feat(facade): add facade pattern example, demo and tests 2 bulan lalu
src 6b978f8ca0 feat(facade): add facade pattern example, demo and tests 2 bulan lalu
.gitignore 54fa376018 Add Singleton design pattern example in creational.singleton package 2 bulan lalu
README.md b0e587cfae docs: update README to include prototype example 2 bulan lalu
pom.xml ba1cd55d45 pom 2 bulan lalu
设计模式之禅(第2版)(jb51.net).pdf b8e3117c38 Add factory pattern implementation including FruitFactory, tests, and fixes 2 bulan lalu

README.md

design-pattern - 设计模式示例集合

这是一个用于学习与演示常见设计模式的 Java 示例集合(基于 Maven / Java 21)。

目录结构(重要包)

  • cn.qinys.learn.creational.factory - 工厂模式示例(Factory Method)
  • cn.qinys.learn.creational.builder - 建造者模式示例(Builder)
  • cn.qinys.learn.creational.singleton - 单例模式示例(Singleton)
    • cn.qinys.learn.creational.prototype - 原型模式示例(Prototype)

快速开始

  1. 编译并运行所有测试:

    Set-Location -Path 'D:\learn\design-pattern'
    mvn test
    
  2. 打包(跳过测试):

    mvn -DskipTests package
    
  3. 运行演示(示例):

  • 运行工厂方法示例:

    java -cp target\classes;target\test-classes cn.qinys.learn.creational.factory.FactoryDemo
    
  • 运行建造者示例:

    java -cp target\classes;target\test-classes cn.qinys.learn.creational.builder.BuilderDemo
    
  • 运行原型示例:

    java -cp target\classes;target\test-classes cn.qinys.learn.creational.prototype.PrototypeDemo
    

关于示例

  • factory 包中的示例展示了工厂方法模式:抽象 Creator 定义 factoryMethod(),由具体 Creator 返回不同的 Product 实现。
  • builder 包中的示例展示了建造者模式:Director 负责组装步骤,Builder/ConcreteBuilder 提供构建细节,最后得到 Computer 对象。
    • prototype 包中的示例展示了原型模式:通过 Prototype 接口与 ConcretePrototype 的拷贝构造函数实现对象克隆,PrototypeRegistry 提供按需克隆功能并演示深拷贝行为。

扩展与贡献

如需添加更多模式(例如抽象工厂、适配器、策略等),请在 src/main/java/cn/qinys/learn/ 下添加新的包并提交 PR。测试请放入 src/test/java 对应包中。

如果需要,我可以:

  • 添加更详细的 README(每个模式的 UML 图和代码说明)
  • 添加 Gradle 构建脚本或 GitHub Actions 工作流以自动运行测试

祝学习愉快!