Skip to content

A comprehensive study and implementation of software design patterns. The aim of this repository is to provide a learning path for developers who want to understand the principles behind popular software design patterns, with practical examples in different programming languages.

License

Notifications You must be signed in to change notification settings

oussama-etlijani/PatternJourney

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

♟️ PatternJourney

A comprehensive study and implementation of software design patterns. The aim of this repository is to provide a learning path for developers who want to understand the principles behind popular software design patterns, with practical examples in different programming languages.

Description

The primary goal of this project is to provide a deeper understanding of Software Design Patterns, principles that allow us to manage complexities in software systems by providing reusable solutions to common problems.

This repository covers the following types of Design Patterns:

  1. Creational Pattern: These patterns provide ways to instantiate a single object or a group of related objects. They abstract the instantiation process and help make a system independent of how its objects are created, composed, and represented. Examples include the Singleton, Factory, and Abstract Factory patterns.
  2. Structural Patterns: These patterns are about organizing different classes and objects to form larger structures and provide new functionality. Examples include the Adapter, Decorator, and Composite patterns.
  3. Behavioral Patterns: These patterns are about identifying common communication patterns between objects and realize these patterns. Examples include the Observer, Strategy, and Command patterns.

🌟 Inspiration

This project was inspired by the seminal work, "Design Patterns: Elements of Reusable Object-Oriented Software" by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides (aka "The Gang of Four"). Their book is a classic in the field and serves as the foundation for the understanding of software design patterns.

The content and examples in this repository are also inspired and guided by the website Refactoring Guru, an excellent resource for understanding design patterns and how to use them in different programming languages.

Using this Repository

Each design pattern is located in its own directory and includes a brief explanation, UML diagram, and implementation examples in various programming languages. Feel free to explore and use the examples for your own learning or projects.

Contributions

Contributions are more than welcome! Whether it's refining explanations, fixing bugs, or providing additional examples in other languages, please feel free to fork this repository and submit pull requests.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

About

A comprehensive study and implementation of software design patterns. The aim of this repository is to provide a learning path for developers who want to understand the principles behind popular software design patterns, with practical examples in different programming languages.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published