Design patterns oop. Software Design Patterns and Principles (quick overview)