/Design_Patterns

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

Primary LanguageJava

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.