This repository serves as an educational reference for learning and understanding Design Patterns in programming, specifically in Laravel. Each pattern in this project is implemented in a separate repository with a practical example so you can learn the concept both theoretically and in practice.
Design Patterns are proven and reusable solutions to common problems we encounter in software design.
They are not ready-to-use code.
Rather, they are guidelines and best practices for solving software design problems.
Using them makes your code:
Easier to understand 🧩
Easier to maintain 🛠️
More extensible 🚀
More standardized 📏
Design patterns are usually divided into three main groups:
| Category | Description | Examples |
|---|---|---|
| Creational | Related to the creation and instantiation of objects | Factory, Builder, Singleton |
| Structural | Related to composing classes and objects into larger structures | Adapter, Decorator, Proxy |
| Behavioral | Related to interactions and communication between objects | Strategy, Observer, Chain of Responsibility |
🏗️ Creational Patterns
Gain a better understanding of Design Pattern concepts
See practical implementations in Laravel
Help developers write more professional and cleaner code
Serve as a central educational resource on GitHub
We plan to add the following patterns in the future:
- Strategy Pattern 🎯
- Observer Pattern 👀
- Adapter Pattern 🔌
- Facade Pattern 🏛️
- Proxy Pattern 🛡️
- Chain of Responsibility Pattern ⛓️
✍️ Author: Amir Eghbal