This repository contains clean, well-structured implementations of core Software Design Patterns in Java, created as part of the Software Design and Construction coursework.
Each design pattern is implemented in its own dedicated folder, with a clear problem statement, structured source code, and visual output to demonstrate functionality. The goal of this repository is to understand, apply, and showcase design patterns through practical examples rather than theory alone.
The repository currently includes the following design patterns:
- Factory Method – Object creation through a common interface
- Abstract Factory Method – Creating families of related objects
- Builder – Step-by-step construction of complex objects
- Singleton – Ensuring a single global instance
- Adapter – Integrating incompatible interfaces
- Composite – Tree structures with uniform object treatment
- Decorator – Dynamic behavior addition
- Facade – Simplified interface to complex subsystems
- Observer – One-to-many dependency and event notification
Software-Design-Pattern-Implementation/
├── Abstract_Factory_Method/
├── Adapter/
├── Builder/
├── Composite/
├── Decorator/
├── Facade/
├── Factory_Method/
├── Observer/
└── Singleton/
Each pattern folder contains:
- A dedicated README.md explaining the pattern and task
- A
src/directory with Java source files - An
img/directory containing screenshots of program output and diagrams
- To demonstrate practical understanding of software design patterns
- To apply object-oriented design principles effectively
- To serve as a reference and learning resource for students and beginners
- To act as a portfolio showcase of clean, documented Java implementations
- Java
- Object-Oriented Programming (OOP)
- Design Patterns (GoF)
- Each pattern is implemented independently for clarity.
- Code focuses on readability, separation of concerns, and correctness.
- This repository can be extended further with additional behavioral patterns such as Strategy, Command, and State.
⭐ If you find this repository helpful, feel free to explore, learn, and build upon it.
For further understanding, you can visit: https://refactoring.guru/design-patterns/catalog