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


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.