During my university days, object-oriented programming felt limited to polymorphism and inheritance. Developing in the industry, I profoundly realized that OOP is not merely an academic concept but a practical discipline. One might wonder why the first and second principles of OOP are discussed before delving into design patterns. Design patterns are 'the culmination of deliberation on what constitutes better code within the object-oriented paradigm.' To truly grasp the significance of various design patterns, it is essential to first understand the fundamental principles of object-oriented programming.