Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/maneeshavr/design_patterns
- Owner: ManeeshaVR
- Created: 2024-05-11T03:23:06.000Z (8 months ago)
- Default Branch: master
- Last Pushed: 2024-08-15T07:22:23.000Z (5 months ago)
- Last Synced: 2024-11-08T19:47:04.558Z (about 2 months ago)
- Topics: design-patterns
- Language: Java
- Homepage:
- Size: 20.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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.