Design Patterns are proven solutions to design problems. Unlike frameworks, however, design patterns do not come with working code. Instead, they are abstract ideas and structures that can be mimicked.
In this series of lectures, we will be introducing design patterns as a concept, and showing several examples of design patterns and when they are useful. The first video provides a broad introduction to software design patterns. The second video shows two examples of creational patterns: Singleton and Factory. The third video discusses a few examples of behavioral patterns: Iterators, Strategy, and Observer. The final video looks at two structural patterns: Adaptor and Decorator. Our goal here is not for you to memorize the code examples in these patterns. Instead, we want you to see a few patterns in action so you know how design patterns can be used and why they are useful. The ultimate goal is that when you are faced with a design problem, you first look to see if any well-known design patterns can be used to help you solve it.