A comprehensive educational resource featuring 23 design patterns implemented in Go, React.js, PHP, TypeScript, Java, AngularJS, and Angular 2+
Idiomatic Go implementations with goroutines and interfaces
Type-safe implementations leveraging TypeScript features
Classic OOP patterns in standard Java
Modern PHP implementations following PSR standards
Component-based patterns with hooks
AngularJS 1.x pattern implementations
Modern Angular with TypeScript
Patterns that deal with object creation mechanisms
Patterns that deal with object composition and relationships
Make incompatible interfaces work together
Separate abstraction from implementation
Compose objects into tree structures
Add new behaviors to objects dynamically
Provide a simplified interface to a complex system
Share common state between objects efficiently
Control access to an object
Patterns that deal with object communication and responsibility
Pass requests along a chain of handlers
Encapsulate requests as objects
Access elements sequentially without exposing structure
Reduce dependencies between communicating objects
Save and restore object states
Notify multiple objects of state changes
Alter behavior when internal state changes
Define a family of interchangeable algorithms
Define algorithm skeleton, let subclasses fill in steps
Separate algorithms from objects they operate on
Want to add a pattern or improve existing code? Check our contributing guidelines.
Contributing Guide