Skip to content

Latest commit

 

History

History
123 lines (80 loc) · 5.2 KB

README.md

File metadata and controls

123 lines (80 loc) · 5.2 KB

Design Patterns

GitHub Repo stars GitHub forks GitHub issues GitHub license GitHub last commit GitHub top language

A Comprehensive Collection of Software Design Patterns

📑 Table of Contents

📜 Introduction

Welcome to the Patterns repository! This repository contains implementations and examples of various design patterns in software development. Whether you're a beginner or an experienced developer, this collection will help you understand and apply design patterns effectively.

✨ Features

✨ Comprehensive collection of design patterns
📚 Well-documented code with explanations
🌐 Examples in multiple programming languages
🗂️ Easy-to-follow structure and organization

⚙️ Installation

To get started with this repository, clone it to your local machine using the following command:

git clone https://github.com/imaarov/patterns.git
cd patterns

🚀 Usage

Each design pattern is located in its respective directory with implementation examples. Navigate through the folders to explore the patterns and their usage.

cd design-patterns/creational/singleton

Run the examples using your preferred programming language's compiler or interpreter.

🌐 Choose Your Language

Select your preferred language to see the relevant examples:

  • PHP PHP
  • Java Java (not implemented yet)

📚 Design Patterns

🏗️ Creational Patterns

🏛️ Structural Patterns

🧠 Behavioral Patterns

🤝 Contributing

Contributions are welcome! Please read the CONTRIBUTING.md file for guidelines on how to contribute to this repository.

  1. Fork the repository
  2. Create a new branch (git checkout -b feature/your-feature)
  3. Make your changes
  4. Commit your changes (git commit -m 'Add some feature')
  5. Push to the branch (git push origin feature/your-feature)
  6. Open a pull request

📝 License

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

📬 Contact

If you have any questions or suggestions, feel free to open an issue or contact me directly.

💡 Tips for Further Improvement

  1. Add Examples and Diagrams: Include UML diagrams or flowcharts for each design pattern to visually explain how they work.
  2. Links to Additional Resources: Provide links to external resources, books, or articles for further reading.
  3. Interactive Elements: Consider adding links to interactive tutorials or online playgrounds where users can experiment with the patterns.
  4. Consistent Formatting: Ensure consistent formatting and coding style across all examples for better readability and understanding.

🎉 Credits + Recommendation for reading

This project utilizes concepts from several authoritative sources. Proper credit is given to these resources for their invaluable contributions to the field of software development and design patterns.

📚 Books

  • Design Patterns: Elements of Reusable Object-Oriented Software (Gang of Four)

    • Authors: Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides
  • Head First Design Patterns

    • Authors: Eric Freeman, Bert Bates, Kathy Sierra, and Elisabeth Robson

🌐 Websites

  • Refactoring.Guru

    • Website: Refactoring.Guru
    • Description: A comprehensive resource for learning about design patterns and refactoring techniques, including detailed explanations and illustrative images.
  • CodeWithMosh

    • Website: CodeWithMosh
    • Description: An online platform offering coding courses and tutorials by Mosh Hamedani, covering a wide range of programming topics and best practices.

🙏 Acknowledgements

  • Special thanks to the authors and creators of these resources for their exceptional work and contributions to the programming community.