This repository provides resources and detailed implementations related to Object-Oriented Programming, Object-Oriented Design, Design Patterns, and their principles.
- Object-Oriented Programming (OOP)
- SOLID
- Object-Oriented Design (OOD)
- Object-Oriented Design Principles
- Design Patterns
- Design Patterns Detailed Implementation
- Low Level Designs
- Antipatterns
Understanding the fundamental principles of Object-Oriented Programming (OOP), including concepts like classes, objects, encapsulation, inheritance, and polymorphism.
1. Class and Objects
2. Encapsulation
3. Inheritance
4. Polymorphism
Learn about Object-Oriented Design (OOD), which involves designing software using objects and classes, focusing on modularity, reusability, and maintainability.
SOLID Principles
1.Single Responsibility Principle.
2.Open and Close Principle.
3.Liskov Substitution principle.
4.Interface Seggregation principle.
5.Dependency Inversion principle.
Understand and implement design patterns, which are proven solutions to common design problems. Design patterns provide reusable solutions that help structure code in a flexible and efficient way.
1.Creational Design Patterns
2.Structural Design Patterns
3.Behaviourial Design Patterns
Detailed implementations of specific design patterns, providing practical examples and explanations of how each design pattern can be applied to solve real-world problems.
1.Creational Design Patterns
2.Structural Design Patterns
3.Behaviourial Design Patterns
Low level design exploration of classic examples.
1.HahsMap.
2.NULL Object Design.
3.TicTacToe.
4.Vending Machine.
Common anti-patterns in java, and their solutions.
Contributions are welcome! If you have additional resources, explanations, or implementations related to Object-Oriented Programming, Object-Oriented Design, or Design Patterns, feel free to contribute.
Please follow the contribution guidelines before submitting pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.