more process oriented and skill related. When we are developing software, some common problems like repetitive code, adding extra properties or redundant functions are bound to occur. Design patterns are smart and reusable solutions for these problems, saving considerable time and effort for developers.