← All reportsPublic report

iluwatar/java-design-patterns

Design patterns implemented in Java

95k stars Java View on GitHubprofiled 11d ago
Try GitZoid
24PRs this week
11Contributors
0Deps scanned
0Issues found
01 · Repo overview

How java-design-patterns is put together

iluwatar/java-design-patterns is an educational catalog of Java design patterns, where each pattern lives in its own self-contained Maven module (e.g., abstract-document, marker-interface, curiously-recurring-template-pattern) aggregated by a parent POM with packaging 'pom'. Each module contains a small demo application (typically an App class with a main method), pattern-specific classes, JUnit 5 tests, and a README explaining the pattern. The primary language is Java (version 1.26.0-SNAPSHOT, groupId com.iluwatar), built with Maven (wrapper included). There is no production runtime or service layer; the 'data flow' is purely demonstration code executed via each module's main class or unit tests.

Languages

Java

Frameworks

SLF4JLogbackLombokJUnit 5MockitoSpring Boot (declared, version property 3.4.5)Google Guice (declared)Gson (declared)

Datastores

H2 Database (declared dependency)MongoDB Java Driver (declared dependency)

Infrastructure

GitHub Actions CI (maven-ci.yml workflow referenced in README badge)SonarCloud static analysis (configured in parent pom.xml)Docker Compose (caching/docker-compose.yml)Maven wrapper (mvnw / mvnw.cmd)

Major components

Parent aggregator POM (root pom.xml)

Defines shared properties, dependency/plugin versions, SonarCloud settings, and lists ~200+ child pattern modules.

Per-pattern Maven modules (e.g., abstract-document, abstract-factory, active-object)

Each is a self-contained demo of one design pattern with its own pom.xml, source, tests, and README.

Demo applications (App classes)

Each module's entry point (e.g., com.iluwatar.abstractdocument.App) wired into maven-assembly-plugin to produce runnable JARs demonstrating the pattern.

Pattern implementation classes

The actual pattern code, e.g., marker-interface's Permission/Guard/Thief showing marker-interface usage, extension-objects' Unit extension mechanism.

Test suites (JUnit 5 + Mockito)

Per-module unit tests validating pattern behavior, run via maven-surefire-plugin.

Documentation layer (README.md per module + localized READMEs)

Explains intent, applicability, and real-world examples of each pattern; root README links translations in localization/.

Build/QA tooling

Checkstyle (checkstyle-suppressions.xml), JaCoCo coverage, license-maven-plugin header enforcement, SonarCloud reporting configured centrally.

caching module infrastructure

Contains a docker-compose.yml providing backing services (e.g., cache datastore) for the caching pattern demo.

The past few weeks on the java-design-patterns repository were dominated by adding brand-new design pattern implementations, including several modern architecture patterns like Write-Ahead Log, Fork/Join, Backends For Frontends, and Onion Architecture. Alongside each new pattern, contributors were regularly credited for their code and documentation work, and translations continued to expand. Routine dependency updates kept the project's libraries current throughout.

Week by week

2026-08-24A quieter week focused on two new design patterns plus contributor recognition and translation work.latest5 changes

Feature

Write-Ahead Log pattern

Added a new implementation of the Write-Ahead Log pattern, a technique where changes are recorded to a log before being applied, commonly used for reliable data recovery.

Feature

Fork/Join pattern

Added the Fork/Join design pattern, which splits big tasks into smaller parallel pieces and combines their results for faster processing.

Docs

Portuguese translations expanded

Documentation for the polling-publisher, money, and delegation patterns was translated into Portuguese.

Docs

New contributors credited

Three contributors (zanarellidev, devikae, and SandhyaDevadiga) were added to the project's public contributor list for translation and code work.

Chore

Dependency update

Updated the Zipkin reporting library used for tracing application performance to its latest version.

2026-08-10A busy week that shipped five new design patterns alongside many dependency updates and contributor credits.6 changes

Feature

Backends For Frontends (BFF) pattern

Added the BFF pattern, which creates tailored backend services for different user-facing apps so each gets exactly the data it needs.

Feature

Microservice messaging pattern

Added a pattern showing how microservices communicate with each other through messages rather than direct calls.

Feature

Rule engine pattern

Added a rule engine design pattern, which lets business rules be defined and evaluated separately from the main program logic.

Feature

Fallback pattern

Added the Fallback pattern, which provides an alternative response when a primary service fails, keeping apps usable during outages.

Feature

Onion Architecture implementation

Added Onion Architecture, a way of structuring software so core business logic sits at the center, independent of databases and interfaces.

Chore

Security and library updates

Multiple routine updates bumped key libraries like Jackson and Logback to newer versions, keeping the project secure and up to date.

03 · Security check

Dependencies and code review

0 dependencies scanned

Dependency advisories

Security Watch

No known advisories across 0 scanned dependencies.

No known advisories in the scanned dependencies.

Code review

No concrete code-level issues confirmed.

Get this report every week for your repos.

GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.

$19 a month, flat · First 10 outputs free · No card required