Architectural Pattern

An architectural pattern describes a reusable solution to a recurring problem in software architecture.

Behavioral Pattern

Behavioral pattern identify common communication patterns between objects and describe how to implement them.

Communication Pattern

Patterns for communication between software modules.

Concurrency Pattern

Concurrency patterns describe ways to deal with multi-threading and concurrent executing code.

Configuration Pattern

Patterns to handle the configuration of modules, classes or applications.

Creational Pattern

Creational patterns describe approaches to instantiate objects. They control how new objects are created to avoid design problems or unnecessary complexity.

Event Handling Pattern

Patterns for event handling in applications.

Memory Mangement Pattern

Patterns to manage objects in the computer's memory.


Refactorings are techniques to restructure source code without changing its semantics.

Structural Pattern

Structural patterns describe ways to deal with relationships between entities, components or classes.

Synchronization Pattern

Patterns to handle the synchronization of data between threads or processes.