By definition, Design Patterns are reusable solutions to commonly occuring problems(in the context of software design). Design patterns were started as best practices that were applied again and again to similar problems encountered in different contexts. They become popular after they were collected, in a formalized form, in the Gang Of Four book in 1994. Originally published with c++ and smaltalk code samples, design patterns are very popular in Java and C# can be applied in all object oriented languanges. In functional languages like Scala, certain patterns are not necesary anymore.
								
							
							
							
							
							
								
							
							
							
							
							
								
							
							
							
								Document Application Example
								
								
							
							
							
							
								
							
							
							
								Look & Feel Example
								
								
							
							
							
							
								
							
						
							
								Text Converter Example
								
							
							
							
							
							
								
							
							
							
							
							
								
							
							
							
								Database Example
								
								
						
							
							
							
							
								
							
							
							
							
							
								
							
							
							
								Restaurant Example
								
								
							
							
							
							
								
							
							
							
							
							
								
							
							
							
							
							
								
							
							
							
							
							
								
							
							
							
								News Publisher Example
								
							
							
							
							
							
								
							
							
							
								Robot Example
								
								
							
							
							
							
								
							
						
							
								Travel Example
								
								
							
							
							
							
								
							
							
							
								Customers Example
								
								
							
							
							
							
								
							
							
							
							
							
								
								
						
								
						
							
							
							
							
								
								
						
							
								Click to zoom
								
								
						
							
							
							
							
								
							
							
							
								Shapes Example
								
								
							
							
							
							
								
							
							
							
								GUI Example
								
							
							
							
							
							
							
								
							
							
							
								Wargame Example
								
							
							
							
							
							
							
								
							
							
							
								Calculator Example
								
								
							
							
							
							
								
							
							
							
								Image Viewer