Data PRO or Pay-Per-Course
Pick a plan that right's for you!
Course curriculum
-
1
What are Design Patterns?
-
2
The Strategy Pattern
-
3
The Decorator Pattern
-
4
The Factory Pattern
-
5
The Singleton Pattern
-
6
The Adapter Pattern
-
7
The Facade Pattern
-
8
The Template Pattern
-
9
The Iterator Pattern
-
10
The MVC Paradigm
-
11
The Observer Pattern
-
12
The Command Pattern
-
13
The Composite Pattern
-
14
The Builder Pattern
-
15
The Chain of Responsibility Pattern
-
16
The Memento Pattern
-
17
The Visitor Pattern
-
18
The State Pattern
-
19
The Flyweight Pattern
-
20
The Bridge Pattern
-
21
The Mediator Pattern
-
22
The Prototype Pattern
-
23
The Proxy Pattern
-
24
Quiz
-
What this course is about? Creational, Behavioural and Structural Paradigms Design Principle #1: Rely on Interfaces, not Implementations Design Principle #2: The Open/Closed Principle Design Principle #3: Principle of Least Knowledge Design Principles #4 and #5: Dependency Inversion and the Hollywood Principle A taste of things to come -
The Strategy Design Pattern: Introduction via String Sorting The Strategy Pattern and Dependency Injection - I The Strategy Pattern and Dependency Injection - II Downloads -
The Decorator Design Pattern The Decorator Design Pattern In Action: Java File APIs Downloads -
The Factory Design Pattern: Introduction The Factory Design Pattern In Action: Database Drivers The Abstract Factory Design Pattern The Abstract Factory Design Pattern: Families of classes The Factory Design Pattern In Action: Reflection - I The Factory Design Pattern In Action: Reflection - II Downloads -
The Singleton Design Pattern: Introduction The Singleton Design Pattern: Double-Checked Locking The Singleton Design Pattern: The Synchronized Keyword The Singleton Design Pattern: Pulling together a multi-threaded solution Downloads -
The Adapter Design Pattern: Introduction The Adapter Design Pattern: Introduction - II The Adapter Design Pattern In Action: Tables and Charts Downloads -
The Facade Design Pattern -
The Template Design Pattern: Introduction via Text Auto-Summarization The Template Design Pattern In Action: Frameworks The Template Design Pattern In Action: Frameworks - II Downloads -
The Iterator Design Pattern: Introduction The Iterator Design Pattern: Type Safety via Generics The Iterator Design Pattern: Internal and External Iterators The Iterator Design Pattern: Language Support for Iterators in Python and Java Downloads -
The Model View Controller Design Pattern: An Introduction The Model View Controller Design Pattern In Action: A MediaPlayer Example The Model View Controller Design Pattern In Action: A Chart Example Downloads -
The Observer Design Pattern: Introduction The Observer Design Pattern In Action: Mouse Handling and Trees The Observer Design Pattern In Action: MVC + Observer = UI Magic The Observer Design Pattern In Action: A MediaPlayer Example - I Downloads -
The Command Design Pattern: Introduction The Command Design Pattern In Action: Lambda Functions - I The Command Design Pattern In Action: Lambda Functions - II The Command Design Pattern In Action: Threading The Command Design Pattern In Action: Undo and Logging Downloads -
The Composite Design Pattern: Introduction via Decorators The Composite Design Pattern: Class Hierarchy The Composite Design Pattern In Action: Transitions, Swing Containers Downloads -
The Builder Design Pattern: Introduction The Builder Design Pattern In Action: An SQL Query Builder I The Builder Design Pattern In Action: An SQL Query Builder II Downloads -
The Chain of Responsibility Pattern Downloads -
The Memento Design Pattern The Memento Design Pattern : Serialization Downloads -
The Visitor Design Pattern Downloads -
The State Design Pattern The State Design Pattern in Action : Mediaplayer Downloads -
The Flyweight Design Pattern The Flyweight Design Pattern : Multithreading Downloads -
The Bridge Design Pattern Downloads -
The Mediator Design Pattern Downloads -
The Prototype Design Pattern Downloads -
The Proxy Design Pattern Downloads -
Design Patterns Strategy Pattern Strategy Pattern Strategy Pattern Decorator Pattern Decorator Pattern Factory Pattern Factory Pattern Factory Pattern Factory Pattern Singleton Pattern Singleton Pattern Singleton Pattern Singleton Pattern Adapter Pattern Facade Pattern Facade Pattern Template Pattern Iterator Pattern MVC MVC MVC Observer Pattern Observer Pattern Observer Pattern Observer Pattern Observer Pattern Observer Pattern Observer Pattern Command Pattern Command Pattern Command Pattern Command Pattern Command Pattern Composite Pattern Builder Pattern Builder Pattern Chain of Responsibility Memento Pattern Memento Pattern Visitor Pattern Visitor Pattern Quiz : State Pattern Flyweight Pattern Flyweight Pattern Bridge Pattern Mediator Pattern Prototype Pattern Prototype Pattern Proxy Pattern
Course Description
What will I 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
About the course
- 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.
Who should take the course?
- Yep! Engineers - from street-smart coders to wise architects - ought to take this course. After this class, you'll look at software design with a new pair of eyes.
- Yep! Product Managers ought to take this course - you will learn to understand the 'how' of Software Design without being constrained by it.
- Yep! Technology executives and investors who don't write code ought to take this course - after this you will always have an intelligent point-of-view on software, and won't find your eyes glazing over when its time to talk nitty-gritty
- Computer Science majors (undergrad or grad) - if you are among the folks that make 'real world example Observer Pattern' such a common search phrase on Google, this is precisely the place for you.
- Yep! Journalists, Wall Street types or IP lawyers seeking to understand recurring patterns of problems and solutions in technology.
- Yep! If you are prepping hard for software engineering interviews :-)
- Nope! This course is not right for you if you are looking for a Programming 101 course. That's not because there are pre-requisites, but simply because a Programming 101 course focuses on syntax, and on doing, while this course focuses on design, and on thinking.
Pre-requisites & Requirements
- Prerequisites: Basic understanding of Java