Software design patterns

 https://farm8.static.flickr.com/7286/27844620322_d5df4758b6.jpg


flickr photo by Philippe Put https://flickr.com/photos/34547181@N00/27844620322 shared under a Creative Commons (BY-ND) license
Software design patterns are general solution to common problems presented in software development. They are also commonly know as "goog practices" while programming.

There are several types:
  • Alogorithm strategy patterns
  • Computational design patterns
  • Execution patterns
  • Implementation strategy patterns
  • Structural desgin patterns
Some types refer only to a specific conection 

Classification:
  • Creational patterns
  • Structural patterns
  • Behavioral patterns
  • Concurrency patters
Also, if you want to know design patterns more in detail watch Derek Banas' tutorials. He not only explains what they are and how to work with them but also codes a little bit in Java to show us some example implementations. The videos are a little bit long but they are not boring, if you already know OOP basics you can skip the first two videos. So, pick up a coffee cup, take your time and watch his tutorials, it´s worth it.

source:
https://en.wikipedia.org/wiki/Software_design_pattern
https://www.youtube.com/watch?v=vNHpsC5ng_E