Skip to content

jfzulu/Software-Design-Patterns

Repository files navigation

Software Design Patterns Repository

This repository contains examples of commonly used Software Design Patterns implemented in various programming languages. These patterns provide standardized solutions to common design challenges, improving the structure and efficiency of software systems.

Patterns Included

  • Adapter: Allows incompatible interfaces to work together by wrapping an existing class with a new interface.
  • Bridge: Decouples an abstraction from its implementation, allowing both to vary independently.
  • Command: Encapsulates a request as an object, allowing parameterization of clients with queues, requests, and operations.
  • Composite: Composes objects into tree-like structures to represent hierarchies, allowing clients to treat individual objects and compositions uniformly.
  • Facade: Provides a simplified interface to a complex subsystem, making it easier to use.
  • Iterator: Provides a way to access elements of an aggregate object sequentially without exposing its underlying structure.
  • Mediator: Defines an object that encapsulates how objects interact, promoting loose coupling.
  • Observer: Allows objects to be notified of changes in other objects without tightly coupling them.
  • Proxy: Provides a surrogate or placeholder for another object to control access.
  • Template Method: Defines the structure of an algorithm in a superclass, allowing subclasses to redefine specific steps.

Getting Started

Clone this repository to explore and experiment with the patterns:

git clone https://github.com/jfzulu/Software-Design-Patterns.git
cd Software-Design-Patterns

About

Repositoria de Patrones de diseño de software

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages