When our project code grows, the code seems to be ok, we successfully wrote on our own problems solutions. They are working, we finished the job. But it is important to look backwards, and ask ourselves what are the conclusions of our work. Maybe someone wrote it better, faster, or what is most important found some universal solution for specific problem, that repeats somewhere in our code or even in most of project. When we think about those, we got that it’s an important thing, that can simplify our work and made code more readable for others. There are many definitions, but most common is that design pattern is a problem solution in certain context. If You are not familiar with design patterns, and don’t now what are the for, I’ll try to explain it on some major popular ones, but first lets get to know what are the consists of.