You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
This repository is a comprehensive showcase of various design patterns implemented in Java, demonstrating advanced Object-Oriented Design (OOD) principles in Java. The patterns implemented in this project are fundamental to building robust, flexible, and maintainable software systems.
This repository demonstrates the implementation of various design patterns in Java, showcasing advanced Object-Oriented Design (OOD) skills. These patterns provide reusable solutions to common problems in software design, improving code modularity, maintainability, and flexibility.
Introduction
This project is a comprehensive collection of design pattern implementations in Java. Each pattern is implemented in a way that emphasizes the principles of Object-Oriented Design (OOD) such as encapsulation, inheritance, and polymorphism. By examining these patterns, you will gain insight into how to apply OOD principles to solve complex software design problems effectively.
Design Patterns Implemented
Chain of Responsibility
Purpose: Allows an object to send a command without knowing which object will handle it, promoting loose coupling.
OOD Principles:
Encapsulation: Request handling is encapsulated within handler objects.
Polymorphism: Different handlers can handle requests in their own way.
Run the individual pattern implementations to see them in action.
Usage
Each design pattern is implemented in its own package. To run a specific pattern, navigate to the package and run theMain class or a relevant test class.
Contributing
Contributions are welcome! Please submit a pull request or open an issue to discuss changes.
About
This repository is a comprehensive showcase of various design patterns implemented in Java, demonstrating advanced Object-Oriented Design (OOD) principles in Java. The patterns implemented in this project are fundamental to building robust, flexible, and maintainable software systems.