Introduction to Design Patterns
- 18m 45s
—Introduction
0m 48s
—What They Are
4m 30s
—Design Pattern History
3m 15s
—Pattern Organization and Language
1m 49s
—Why Patterns Matter
3m 9s
—Criticisms
1m 0s
—The PSOD Patterns Library
2m 14s
—Summary
2m 0s
—Introduction
0m 10s
—Motivating Example
1m 19s
—Graphic Example
0m 54s
—Real World Example
1m 19s
—Intent
0m 25s
—Applicability
1m 1s
—Structure
1m 30s
—How It Gets Used
0m 58s
—Collaboration
0m 15s
—Consequences
1m 15s
—Implementation Example
1m 12s
—Demo
16m 1s
—Related Patterns
1m 26s
—References
0m 37s
—Summary
0m 47s
—Introduction
1m 10s
—What Is It?
2m 44s
—Nom Nom Burger
3m 39s
—Inital Problem
3m 14s
—Wrong Solution
4m 11s
—Refactoring to Bridge
4m 19s
—Standard Formatter
2m 17s
—Reverse Formatter
1m 45s
—Fancy Formatter
0m 53s
—What We Did
2m 57s
—Common Usages
2m 0s
—Summary
1m 11s
The Builder Pattern
- 44m 48s
—Introduction
2m 43s
—Understanding Builder
5m 21s
—Problem 1
4m 57s
—Problem 2
8m 33s
—Problem 3
10m 12s
—What We Built
7m 4s
—Variations
3m 21s
—Summary
2m 37s
Chain of Responsibility
- 23m 25s
—Introduction
2m 22s
—Traditional Usage
0m 20s
—Motivating Example
0m 40s
—Demo: Expense Report
3m 36s
—Demo: Expense Report w/CoR
5m 38s
—Demo: Non-Traditional Usage
9m 34s
—Summary
1m 15s
The Command Pattern
- 23m 57s
—Introduction
0m 23s
—Motivating Example
4m 2s
—Intent and Applicability
2m 41s
—Structure and Consequences
4m 4s
—Implementation Example
10m 33s
—Related Patterns
0m 54s
—Summary
1m 20s
Composite Pattern
- 29m 10s
—Introduction
1m 3s
—Breaking it Down
1m 58s
—Email Example
2m 39s
—Split Gold
3m 52s
—Refactoring 1
3m 42s
—Refactoring 2
5m 33s
—Adding Depth
3m 32s
—Using a Root
1m 20s
—Formal Definition
1m 41s
—When to Use
2m 8s
—Summary
1m 42s
Decorator Design Pattern
- 27m 4s
—Introduction
0m 45s
—Motivating Example
2m 14s
—Intent
2m 16s
—Applicability
1m 58s
—Structure
3m 47s
—How it Works
1m 50s
—Motivating Example Refactored
1m 1s
—Demo: Overview of the Project
1m 22s
—Demo: Create the Decorator
2m 25s
—Demo: Create the Concrete Decorator
4m 42s
—Demo: Adding more Concrete Decorators
1m 41s
—Consequences
1m 18s
—Related Patterns
1m 3s
—Summary
0m 42s
Event Aggregator
- 30m 49s
—Introduction
0m 9s
—Motivating Example
0m 51s
—Demo: The Order Application
0m 37s
—Pattern Intent
1m 48s
—Applicability
1m 15s
—Demo: Solving With Standard .NET Events
5m 57s
—Issues with Current Implementation
2m 22s
—Pattern Structure
0m 29s
—Demo: Using Event Aggregator
7m 29s
—Demo: Details of Implementation
4m 39s
—Consequences of the Pattern
1m 18s
—Known Variations
2m 26s
—Related Patterns
0m 57s
—Summary
0m 32s
—Introduction
0m 30s
—Intent
2m 14s
—Demo: Motivating Example 1
3m 0s
—Demo: Motivating Example 2
1m 33s
—Structure
2m 12s
—Consequences
0m 53s
—Demo: Facade Pattern Example
3m 15s
—Common Uses
1m 8s
—Demo: Real World Example
3m 27s
—Related Patterns
0m 47s
—Summary
1m 8s
Factory Patterns
- 36m 14s
—Introduction
0m 32s
—Motivating Example
1m 18s
—Demo: Example
3m 30s
—Intent
1m 30s
—Simple Factory Pattern
0m 54s
—Demo: Simple Factory Pattern
4m 14s
—Simple Factory Pattern Notes
1m 19s
—Factory Method Pattern
1m 47s
—Demo: Factory Method Pattern
6m 2s
—Factory Method Pattern Notes
1m 54s
—Abstract Factory Pattern
2m 53s
—Demo: Abstract Factory Pattern
4m 1s
—Abstract Factory Pattern Notes
1m 21s
—Real World Examples
3m 4s
—Summary
1m 55s
—Introduction
0m 32s
—Intent
0m 55s
—Demo: Motivating Example
5m 39s
—Structure
2m 55s
—Consequence
1m 22s
—Demo: Implementing the Pattern
2m 31s
—Demo: Real World Example
2m 40s
—Related Patterns
1m 8s
—Summary
0m 21s
Interpreter Pattern
- 22m 28s
—Introduction
0m 39s
—Break Down
2m 18s
—Bar Codes
1m 40s
—How Bar Codes Work
1m 50s
—A Challenge
1m 56s
—Sandwhich Demo Overview
7m 27s
—Sandwhich Demo
3m 32s
—Formal Definition
1m 48s
—Summary
1m 18s
Iterator Pattern
- 31m 15s
—Introduction
0m 48s
—Pattern Usage
1m 33s
—Without Iterators
1m 9s
—Intent
0m 32s
—Applicability
2m 13s
—Iterators in C#
2m 20s
—Collaboration
0m 38s
—Consequences
0m 44s
—Demo
17m 53s
—Related Patterns
2m 4s
—Summary
1m 21s
Lazy Load Pattern
- 52m 15s
—Introduction
0m 16s
—Motivating Example
1m 10s
—Intent
1m 7s
—Applicability
1m 36s
—Lazy Initialization
2m 16s
—Demo: Lazy Initialization
11m 16s
—Virtual Proxy
2m 44s
—Demo: Virtual Proxy
3m 54s
—Proxy Consequences
1m 24s
—Value Holder
1m 35s
—Demo: Value Holder
5m 56s
—Ghosts
1m 26s
—Demo: Ghosts
11m 36s
—How It Is Used
0m 56s
—Consequences
2m 42s
—Related Patterns
0m 19s
—References
0m 39s
—Summary
1m 23s
Mediator Pattern
- 14m 26s
—Introduction
0m 7s
—Motivating Example
0m 20s
—Demo: Motivating Example
3m 13s
—Definition
2m 37s
—Demo: Mediator Pattern
6m 22s
—Advantages and Disadvantages
1m 18s
—Summary
0m 29s
—Introduction
1m 9s
—Intent
0m 31s
—Applicability
1m 13s
—How It Is Used
0m 46s
—Undo / Redo
0m 57s
—Collaboration
0m 39s
—Consequences
1m 17s
—Operations
2m 16s
—Iterative State
0m 51s
—Demo: WPF Paint
9m 31s
—Related and Summary
1m 53s
Model View Presenter (MVP) Pattern
- 41m 40s
—Introduction
1m 24s
—Why You Care
1m 19s
—Intent
2m 49s
—A Note on Variations
2m 41s
—Structure and Organization
5m 34s
—Demo: Web Form Example 1
10m 8s
—Demo: Web Form Example 2
7m 52s
—Demo: Windows Forms Example
3m 26s
—Collaboration Among Objects
2m 10s
—Consequences
1m 2s
—Known Uses
0m 52s
—Related Patterns
0m 40s
—Summary
1m 43s
Model View ViewModel (MVVM) Pattern
- 43m 31s
—Introduction
1m 31s
—History
2m 24s
—Intent
2m 11s
—Structure
2m 1s
—Demo: Creating the Application
1m 33s
—The Model
1m 13s
—Demo: Creating the Model
4m 4s
—The ViewModel
1m 54s
—Demo: Creating the ViewModel
3m 2s
—The View
1m 19s
—Demo: Creating the View
5m 37s
—Binding the View and ViewModel
3m 9s
—Communication Between the View and ViewModel
0m 52s
—Demo: Communicating with Commands
6m 22s
—Collaboration
2m 7s
—Consequences
1m 50s
—Known Uses
1m 1s
—Related Patterns
0m 33s
—Summary
0m 48s
Null Object Pattern
- 21m 58s
—Introduction
0m 25s
—Motivating Example
1m 5s
—Demo: Example 1
1m 23s
—Demo: Example 2
3m 7s
—Intent
1m 18s
—Applicability
1m 53s
—Also Known As
0m 45s
—Structure
1m 27s
—Demo: Implementation Example
6m 11s
—Consequences
1m 20s
—Notes and Related Patterns
2m 15s
—Summary
0m 49s
Observer Pattern
- 28m 38s
—Introduction
1m 50s
—Motivating Example
2m 46s
—Introduction to the Observer
1m 43s
—Traditional
1m 8s
—Demo: Traditional
2m 38s
—Consequences
2m 55s
—Events and Delegates
1m 37s
—Demo: Events and Delegates
2m 54s
—IObserver
3m 2s
—Demo: IObserver
4m 5s
—Real World Examples
2m 36s
—Summary
1m 24s
The Prototype Pattern
- 31m 48s
—Introduction
3m 13s
—Understanding Prototype
3m 51s
—Problem 1
6m 7s
—Problem 2
4m 7s
—Problem 3
3m 47s
—The Prototype Design
4m 11s
—Language Examples
4m 1s
—Summary
2m 31s
—Introduction
0m 8s
—Intent
0m 13s
—Motivating Example
0m 50s
—Applicability
0m 42s
—Structure
1m 25s
—How It Is Used
0m 43s
—Lazy Loading
1m 52s
—Consequences
1m 54s
—Demo: Virtual Proxy
11m 59s
—Demo: Remote Proxy
6m 1s
—Demo: CachedRepository
6m 12s
—Related Patterns
1m 25s
—Summary
1m 8s
—Introduction
1m 38s
—Intent
2m 3s
—IEmployeeRepository
7m 4s
—Generic IRepository
1m 53s
—Repository at Work
2m 33s
—Implementing a Repository
5m 25s
—Tests and Separation
4m 16s
—Applicability
1m 13s
—Consequences
1m 35s
—Related Patterns
1m 38s
—Summary
0m 41s
—Introduction
0m 14s
—Motivating Example
0m 40s
—Intent
0m 25s
—Applicability
0m 33s
—Structure
0m 47s
—Structure (not thread safe)
1m 11s
—How It Is Used
0m 42s
—Structure (thread safe)
2m 5s
—Collaboration
0m 18s
—Consequences
0m 46s
—Single Responsibility
0m 51s
—Implementation Example
3m 54s
—Demo: Adding the Singleton
16m 11s
—Related Patterns
0m 52s
—References
1m 0s
—Summary
1m 4s
Service Locator Pattern
- 24m 37s
—Introduction
1m 8s
—Motivating Example
1m 13s
—Demo: Simple Version
1m 45s
—Intent
2m 13s
—Structure
0m 51s
—Demo: Improved Version
3m 30s
—Other Providers
1m 31s
—Demo: Advanced Version
5m 59s
—Benefits
2m 7s
—Consequences
1m 4s
—Related Patterns
1m 39s
—Summary
1m 37s
—Introduction
1m 3s
—Motivating Example
1m 59s
—Demo: Simple Version
1m 51s
—Demo: Simple Version Code Review
1m 57s
—Issues with the Simple Approach
0m 50s
—Intent
1m 19s
—Structure
1m 42s
—Demo: Advanced Version Code Review
2m 36s
—States
2m 48s
—State Change
0m 44s
—Demo: Advanced Version
1m 11s
—Benefits
1m 27s
—Known Uses
1m 7s
—Summary
1m 3s
Strategy Pattern
- 21m 29s
—Introduction
0m 41s
—Demo: Motivating Example
6m 2s
—Intent and Applicability
2m 30s
—The Pattern in UML
1m 47s
—Demo: Implementation Example
3m 3s
—Consequences
2m 11s
—Variation Examples
4m 6s
—Summary
1m 9s
Template Method
- 15m 18s
—Introduction
0m 7s
—Motivating Example
1m 28s
—Applicability
0m 29s
—Structure
1m 2s
—How It Is Used
0m 34s
—Consequences
0m 33s
—Hooks
0m 19s
—Hollywood Principle
0m 30s
—Implementation Example
8m 23s
—Related Patterns
0m 27s
—References
0m 54s
—Summary
0m 32s
—Introduction
2m 25s
—Intent
2m 27s
—UoW in ADO.NET
2m 19s
—ObjectContext
2m 33s
—IUnitOfWork
3m 14s
—Implementing IUnitOfWork
3m 23s
—Applicability and Consequences
1m 19s
—Related Patterns
2m 3s
—Summary
1m 3s
Visitor Pattern
- 22m 57s
—Introduction
1m 5s
—Breaking it Down
1m 38s
—Real Life Example
2m 56s
—Net Worth Without Visitor
2m 6s
—Refactoring to Visitor
7m 51s
—Monthly Income Visitor
3m 17s
—Formal Definition
2m 20s
—Summary
1m 44s
—Introduction
0m 54s
—Motivating Example
0m 41s
—Demo: Customer Discounts
5m 1s
—What's the Problem?
1m 44s
—Intent
1m 42s
—Applicability
0m 39s
—Structure
0m 38s
—Demo: Using Rules
13m 31s
—Alternate Structure
0m 38s
—Considerations
1m 13s
—Business Rules Engines
0m 59s
—Practice: Greed Kata
1m 26s
—Demo: Greed Overview
6m 38s
—Summary
1m 45s
Specification Pattern
- 36m 58s
—Introduction
1m 28s
—Intent
1m 52s
—Implementation
1m 38s
—Predicates
7m 50s
—Uses and Validation
2m 56s
—Specifications and Data
12m 6s
—Demo: Creating Smart Playlists
8m 24s
—Summary
0m 39s