iluwatar/java-design-patterns
Design patterns implemented in Java
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
Frameworks
Datastores
Infrastructure
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.
A quieter week focused on two new design patterns plus contributor recognition and translation work.
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.
Dependencies and code review
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