/java-design-patterns

A cookbook of simple Java design patterns.

Primary LanguageJavaMIT LicenseMIT

Java Design Patterns

Gradle CI Maven CI

A cookbook of commonly used Java design patterns based on examples from:

  • "Design Patterns: Elements of Reusable Object-Oriented Software" - Gamma et al
  • "Head First Design Patterns" - Freeman et al
  • "Java Design Pattern Essentials" - Tony Brevis

Each pattern is contained in its own package. The Javadoc will provide more details and the unit tests will demonstrate how to use it.

Any comments/bugs/better ways of doing things, send 'em my way.

Design Patterns

Behavioural

  1. State
  2. Chain of Responsibility
  3. Strategy
  4. Observer
  5. Command
  6. Template Method
  7. Visitor

Creational

  1. Builder
  2. Factory Method
  3. Static Factory Method / Simple Factory Method
  4. Abstract Factory
  5. Singleton

Structural

  1. Adapter
  2. Decorator
  3. Facade

Build Guide

You'll need JDK 17+ installed on your dev box.

Gradle

You can use the included Gradle wrapper to build the project and pull down the dependencies:

./gradlew build

The Javadoc can be found in the <project-root>/build/docs/javadoc folder after you execute the build.

Maven

You can use the included Maven wrapper to build the project and pull down the dependencies:

./mvnw clean install

The Javadoc can be found in the <project-root>/target/apidocs folder after you execute the build.

Contributing

Issues and new features are managed using the project Issue Tracker - submit bugs here.

You are welcome to take on new features or fix bugs! See here for how to get involved.