Skip to content

Ledrunning/DesignPatterns

Repository files navigation

DesignPatterns

This repository contains a collection of simple examples illustrating Classical Gang of Four (GOF) design patterns, as found on the website metanit.com. The code is implemented in the C# programming language using Visual Studio 2017.

Table of Contents

Introduction

Design patterns are proven solutions to common design problems that occur in software design. This repository aims to provide simple, understandable examples of GOF design patterns in C#, making it a valuable resource for those learning about software design principles.

Getting Started

To run or explore the examples, follow these steps:

  1. Ensure you have Visual Studio 2017 or a compatible version installed.

  2. Clone this repository to your local machine:

    git clone https://github.com/Ledrunning/DesignPatterns.git
  3. Open the solution in Visual Studio.

Patterns Included

The repository covers various GOF design patterns, including but not limited to:

  • Creational Patterns

    • Singleton
    • Factory Method
    • Abstract Factory
    • Builder
    • Prototype
  • Structural Patterns

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

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

Usage

Explore the provided examples to understand how each design pattern is implemented. The examples are meant to be clear and concise, making it easy for developers to grasp the concepts behind each pattern.

To Do

Draw class diagrams for each design pattern.

Contributing

If you'd like to contribute to this project, follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Make your changes and commit them with clear, concise commit messages.
  4. Push your changes to your fork.
  5. Create a pull request to merge your changes into the main repository.

License

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

Releases

No releases published

Packages

No packages published

Languages