Skip to content

Practice design patterns to create reusable and extensible software

Notifications You must be signed in to change notification settings

hichambouttaj/design-patterns-practice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Design Patterns Practice Repository

This repository is dedicated to practicing different software design patterns in various programming languages. Design patterns are essential tools for creating maintainable, scalable, and efficient software solutions. This repository serves as a collection of code examples and explanations for different design patterns.

Table of Contents

  1. Introduction
  2. Design Patterns
  3. Getting Started
  4. Contributing
  5. License

Introduction

In software engineering, design patterns are reusable solutions to common problems that developers encounter while designing software. These patterns provide a template for solving certain types of problems and help maintain clean, structured, and efficient code.

This repository aims to:

  • Provide code examples and explanations for various design patterns.
  • Demonstrate how to implement these patterns in java.
  • Serve as a reference for developers interested in learning and applying design patterns.

Design Patterns

Currently, this repository covers the following design patterns:

  1. Creational Patterns

    • Singleton
    • Prototype
    • Builder
    • Factory Method
    • Abstract Factory
    • Object Pool
  2. Structural Patterns

    • Proxy
    • Decorator
    • Adapter
    • Facade
    • Flyweight
    • Bridge
    • Composite
  3. Behavioral Patterns

    • Chain of Responsibility
    • Interpreter
    • Iterator
    • Command
    • State
    • Template Method
    • Mediator
    • Memento
    • Visitor
    • Strategy
    • Observer

Each design pattern has its own directory within the repository, containing code examples, explanations.

Getting Started

To explore the code examples for each design pattern, follow these steps:

  1. Clone this repository to your local machine:
   git clone https://github.com/hichambouttaj/design-patterns-practice.git
  1. Navigate to the specific design pattern directory you're interested in.
  2. Review the code, explanations of that pattern's directory.

Feel free to contribute by adding more design patterns, improving existing code examples, or suggesting enhancements.

Contributing

If you'd like to contribute to this repository, please follow these guidelines:

  1. Fork this repository.
  2. Create a new branch for your changes:
    git checkout -b feature/your-feature-name
  1. Make your changes and commit them with descriptive commit messages.
  2. Push your changes to your forked repository:
    git push origin feature/your-feature-name
  1. Create a pull request to merge your changes into this repository.

Please make sure your code adheres to best practices, is well-documented, and includes appropriate tests.

License

This repository is licensed under the MIT License. See the LICENSE file for details.

We welcome contributions and feedback from the community to make this repository a valuable resource for learning and practicing design patterns. Happy coding!

About

Practice design patterns to create reusable and extensible software

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages