Software engineering is all about breaking down big problems to be smaller and more understandable. As in many fields of science there are best practises upon how certain issues could be solved. In code these best practises to solve problems are called design patterns.
By far the best description I have found on design patterns is Refactoring guru’s.
It has a pretty good approach to describe all creational, structural, and behavioural patterns with problems they are meant to solve and with language examples for you to understand better.
If you have a taste for a more thorough description, check out Uncle Bob’s (Robert C. Martin) books or videos on the topic as well.[Last Updated - Jul 28, 2022]