Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/maneeshavr/design_patterns

Examples of behavioral, creational, and structural design patterns in software development, including Observer, Strategy, Factory, Singleton, Decorator, and Facade patterns.
https://github.com/maneeshavr/design_patterns

design-patterns

Last synced: 5 days ago
JSON representation

Examples of behavioral, creational, and structural design patterns in software development, including Observer, Strategy, Factory, Singleton, Decorator, and Facade patterns.

Awesome Lists containing this project

README

        

# Design Patterns Examples

## Overview
This repository provides examples of key design patterns used in software development. It covers behavioral, creational, and structural design patterns, demonstrating how to implement and use them effectively.

## Behavioral Design Patterns
- **Observer**: Defines a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.
- **Strategy**: Defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from the clients that use it.

## Creational Design Patterns
- **Factory**: Provides an interface for creating objects in a superclass, but allows subclasses to alter the type of objects that will be created.
- **Singleton**: Ensures a class has only one instance, and provides a global point of access to it.

## Structural Design Patterns
- **Decorator**: Allows behavior to be added to individual objects, dynamically, without affecting the behavior of other objects from the same class.
- **Facade**: Provides a simplified interface to a complex subsystem.

## Technologies Used
- Language: Java
- Build Tool: Maven

## Examples
Each design pattern is implemented in its own directory with detailed explanations and code comments to help you understand the implementation.