This repository contains implementations of classic design patterns in Java, following object-oriented design principles. Each pattern includes:
- Java implementation with clear example
- Detailed explanation in its own README
Patterns that deal with object interaction and responsibility distribution.
| Pattern | Description | Implementation |
|---|---|---|
| Memento | Implementing the undo mechanisms | View |
| state | Allowing an object to alter its behavior based on its internal state | View |
| Iterator | Allowing access the elements of a collection without exposing its underlying representation | View |
| Strategy | Enables selecting an algorithm's behavior at runtime | View |
| Template Method | Defines the skeleton of an algorithm in a method, deferring some steps to subclasses | View |
| Command | Turns a request into a stand-alone object containing all information about the request | View |
| Observer | Defines a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically | View |
| Mediator | Reduces chaotic dependencies between objects by restricting direct communications between them and forcing them to collaborate only via a mediator object | View |
| Chain of Responsibility | Allows passing requests along a chain of handlers | View |
| Visitor | Allows adding new operations to existing object structures without modifying the structures themselves | View |
Patterns that deal with object creation mechanisms.
This repository is under active development, with more design patterns being implemented regularly. Future updates will include additional creational, structural, and behavioral patterns, along with real-world examples, performance considerations, and comparisons between similar patterns. Contributions and suggestions are welcome—feel free to open an issue or submit a pull request! Stay tuned for more patterns like Interpreter, Chain of Responsibility, and Null Object, coming soon.
