Skip to main content
Software design patterns, principles, and snippets

Software design patterns, principles, and snippets

The best designers will use many design patterns that dovetail and intertwine to produce a greater whole --Erich Gamma

Study the design patterns 💡


Design patterns are the best formalized practices a programmer can use to
solve common problems when designing an application or system.

Design patterns can speed up the development process by providing tested, proven
development paradigms.

Reusing design patterns help prevent subtle issues that cause major
problems, and it also improves code readability for coders and architects who
are familiar with the patterns.

Getting started

This site showcases Java-based design patterns, principles, and code snippets. The
solutions have been developed by experienced programmers and architects from the
open source community. The patterns can be browsed by their high level descriptions
or by looking at their source code. The source code examples are well commented and
can be thought as programming tutorials on how to implement a specific pattern. We
use the most popular battle-proven open source Java technologies.

Hopefully you find the object oriented solutions presented on this site useful
in your architectures and have as much fun learning them as we had developing them.

How to contribute

The website is the result of the work of the open source community. To contribute
to the content, please follow the Github repository links below.