Every good programmer might dreams to create a nice, big and famous project (software, web site, etc.). At least you need to dream to improve your skills, motivate yourself and move forward. However, if you want to create something really big, scalable and flexible you have to use some common existing practices and solutions that all strong developers use in daily basis. One of those common existing solutions is use of design patterns. If you are a beginner and want to get an idea what are design patterns and how to use them, this post is for you and I hope it will he helpful.
So, Design Pattern in object-orientated programming is a common formalized solution to a common problem, where the solution is reusable and can be repeated many times during the execution of an application. Design pattern typically describes relationships and interactions between application classes (objects), and allows to make the application commonly formalized, flexible and scalable.
Note that to get the general idea of design patterns you must have some knowledge of basics in object-orientated programming.
Design patterns are grouped into the categories: creational structural and behavioral patterns. I will describe some of the most common patterns one by one to give you an idea how to use design patterns in real life. Since I program in PHP, all the examples will be represented using that programming language.