Course Information
Course Overview
An intensely practical, deeply thoughtful and quirky look at 24 Design Patterns. Instructors are ex-Google, Stanford.
- Prerequisites: Basic understanding of Java
- Taught by a Stanford-educated, ex-Googler, husband-wife team
- More than 50 real-world examples
This is an intensely practical, deeply thoughtful, and quirky take on 24 Design Patterns that matter.
Let’s parse that.
- The course is intensely practical, bursting with examples - the more important patterns have 3-6 examples each. More than 50 real-world Java examples in total.
- The course is deeply thoughtful, and it will coax and cajole you into thinking about the irreducible core of an idea - in the context of other patterns, overall programming idioms and evolution in usage.
- The course is also quirky. The examples are irreverent. Lots of little touches: repetition, zooming out so we remember the big picture, active learning with plenty of quizzes. There’s also a peppy soundtrack, and art - all shown by studies to improve cognition and recall.
- Lastly, the patterns matter because each of these 24 is a canonical solution to recurring problems.
What's Covered:
- Decorator, Factory, Abstract Factory, Strategy, Singleton, Adapter, Facade, Template, Iterator, MVC, Observer, Command, Composite, Builder, Chain of Responsibility, Memento, Visitor, State, Flyweight, Bridge, Mediator, Prototype, Proxy, Double-Checked Locking and Dependency Injection.
- The only GoF pattern not covered is the Interpreter pattern, which we felt was too specialized and too far from today’s programming idiom; instead we include an increasingly important non-GoF pattern, Dependency Injection.
- Examples: Java Filestreams, Reflection, XML specification of UIs, Database handlers, Comparators, Document Auto-summarization, Python Iterator classes, Tables and Charts, Threading, Media players, Lambda functions, Menus, Undo/Redo functionality, Animations, SQL Query Builders, Exception handling, Activity Logging, Immutability of Strings, Remote Method Invocation, Serializable and Cloneable, networking.
- Dependency Inversion, Demeter’s Law, the Open-Closed Principle, loose and tight coupling, the differences between frameworks, libraries and design patterns.
Course Content
- 23 section(s)
- 63 lecture(s)
- Section 1 What are Design Patterns?
- Section 2 The Strategy Pattern
- Section 3 The Decorator Pattern
- Section 4 The Factory Pattern
- Section 5 The Singleton Pattern
- Section 6 The Adapter Pattern
- Section 7 The Facade Pattern
- Section 8 The Template Pattern
- Section 9 The Iterator Pattern
- Section 10 The MVC Paradigm
- Section 11 The Observer Pattern
- Section 12 The Command Pattern
- Section 13 The Composite Pattern
- Section 14 The Builder Pattern
- Section 15 The Chain of Responsibility Pattern
- Section 16 The Memento Pattern
- Section 17 The Visitor Pattern
- Section 18 The State Pattern
- Section 19 The Flyweight Pattern
- Section 20 The Bridge Pattern
- Section 21 The Mediator Pattern
- Section 22 The Prototype Pattern
- Section 23 The Proxy Pattern
What You’ll Learn
- Identify situations that call for the use of a Design Pattern, Understand each of 24 Design Patterns - when, how, why and why not to use them, Distill the principles that lie behind the Design Patterns, and apply these in coding and in life, whether or not a Design Pattern is needed, Spot programming idioms that are actually built on Design Patterns, but that are now hiding in plain sight
Skills covered in this course
Reviews
-
RRonnie Horo
The approach to explanations in the purview of other design patterns which is more than often missed was my favorite part of the course.
-
CChristopher Stoneking
There was a lot of great info here on each design pattern - what it is, why you would want to use it, and what for. I only took half a star off because the quizzes mainly repeat the same questions at the end of each lecture, which is not a very good way to do things, in my opinion.
-
AAnonymized User
Some of the patterns are well explained, highly relevant examples as well while some left me wanting. A few areas had repetitions with similar examples, while the later part of the course felt kind of rushed with too few to no implementation references at all. Over all a good course but lacks the comprehensive nature of the topics involved.
-
KKalpana Patel
Continually writing while saying distracts from listening. Cant read and listen at same time. But the content was superb. Really helped to understand the concepts.