Skip to content

Vic-a-j/Design-Patterns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Design-Patterns

A dedicated repository for learning, applying, and experimenting with classic and modern object-oriented design patterns.


--Overview--

This repository is a curated collection of Object-Oriented Design Patterns, organized into the three primary categories defined by the GoF ("Gang of Four") - Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides.

Design Patterns
├── Behavioral
├── Creational
└── Structural

Each folder contains:

  1. A dedicated implementation of its respective design pattern.
  2. A clear and easy-to-understand explanation
  3. A visual diagram illustrating how the pattern works
  4. Code examples that demonstrate real-world usage

The goal of this repository is to provide a hands-on, reference-ready space for studying, practicing, and mastering OOP design patterns through clean code and visual learning.


📚 Pattern Index

Creational Patterns: Patterns that focus on object creation mechanisms, enhancing flexibility and reuse.

Structural Patterns: Patterns that help organize relationships between classes and objects.

Behavioral Patterns: Patterns that manage communication, responsibility, and algorithms between objects.


References

[1] Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides,
Design Patterns: Elements of Reusable Object-Oriented Software,
Addison-Wesley Professional, 1994.
[2] Refactoring.Guru – Design Patterns


📂 Repository Structure

Design Patterns
├── Creational
│   ├── FactoryMethod
│   │   ├──Participants
│   │   │  └──...
│   │   ├──READ.md
│   │   └──main.py
│   ├── Singleton
│   └── ...
├── Structural
│   ├── Adapter
│   ├── Decorator
│   └── ...
└── Behavioral
    ├── Observer
    ├── Strategy
    └── ...

🤝 Contributions

Contributions are welcome! Whether it’s improving explanations, adding diagrams, or refining code examples, feel free to open a pull request or issue.

⭐ Support the Project

If this repository helps you understand design patterns more deeply, consider giving it a ⭐ to help others find it too!

About

A dedicated repository for learning, applying, and experimenting with classic and modern object-oriented design patterns.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages