This repository contains examples of the three types of design patterns: creational, behavioral, and structural. Each pattern is implemented in a different programming language to showcase the flexibility and universality of design patterns.
Design patterns are a set of reusable solutions to common software engineering problems. They provide a way to standardize and improve the quality of code, making it more maintainable and easier to understand.
This repository contains examples of design patterns implemented in various programming languages, including TypeScript, Java, Ruby, Kotlin, Python, C#, and Swift. Each pattern is organized into one of three categories: creational, behavioral, and structural.
To use the code in this repository, you will need to have the appropriate programming languages and tools installed on your computer. You can find installation instructions and links to download the required software in the README file in each pattern's directory.
To download the code and examples from this repository, you can use git:
git clone https://github.com/LinuxDevil/DesignPattern-Session.git
Creational design patterns are used to create objects in a way that is more flexible and dynamic than simply using a constructor.
- Abstract Factory: TypeScript
- Builder: Java
- Factory: TypeScript
- Prototype: Swift
- Singleton: TypeScript
Behavioral design patterns are concerned with the interactions between objects and how they communicate and collaborate with one another.
- Chain of Responsibility: C#
- Command: Ruby
- Iterator: Kotlin
- Mediator: TypeScript
- Memento: Java
- Observer: TypeScript
- State: Python
- Strategy: C#
- Template Method: TypeScript
- Visitor: Swift
Structural design patterns are used to organize classes and objects in a way that simplifies the relationships between them.
- Adapter: TypeScript
- Bridge: TypeScript
- Composite: Java
- Decorator: Kotlin
- Facade: C#
- Flyweight: TypeScript
- Proxy: Swift
Contributions to this repository are welcome. If you would like to contribute, please follow these steps:
- Fork the repository.
- Create a new branch for your changes.
- Make your changes and commit them to your branch.
- Create a pull request to merge your changes into the main branch of the repository.