Mini Map
Search
⌘ K
Log In
Design Patterns for Software Developers*
0%
1.
Introduction to Design Patterns
Why Design Patterns?
The Telescoping Trap
Core Design Principle
The Three Pillars
Creational Patterns
Structure vs. Behavior
Quick Recall
Key Takeaways
2.
Creational Patterns
Constructing Complexity
The Assembly Line
The Telescoping Problem
The One and Only
Locking the Constructor
The Thread Safety Trap
Don't Build, Clone
Copy Methods
Delegating Creation
Subclassing the Logic
Factories of Factories
Factory Method vs. Abstract Factory
Creational Patterns Recap
3.
Structural Patterns
The Universal Translator
How Adapter Works
Coding the Adapter
The Bridge Pattern
Avoiding Class Explosion
Adapter vs. Bridge
The Composite Pattern
Part Equals Whole
Recursive Execution
The Decorator Pattern
Coding Decorators
The Facade Pattern
One Button to Rule Them All
The Flyweight Pattern
Intrinsic vs. Extrinsic
Visualizing Memory Savings
The Proxy Pattern
Lazy Loading Example
Why Not Subclassing?
Structural Patterns Recap
4.
Behavioral Patterns I
Behavioral Patterns: The Conductors
The Chain of Responsibility
Real World: Cockpit Warning Systems
The Command Pattern
The Magic of Undo
Invoker vs. Receiver
The Mediator Pattern
Analogy: Air Traffic Control
The Observer Pattern
Push vs. Pull Models
Identifying Observers
The Iterator Pattern
The Interpreter Pattern
Decoupling Senders from Receivers
Mediator Trade-offs
Iterator Pattern Quiz
Quick Review
5.
Behavioral Patterns II
The Time Machine Object
Snapshot Mechanics
Why not just make it public?
The If-Else Nightmare
Changing Identity
Logic in the State
The Algorithm Skeleton
Hooks vs. Fixed Steps
Pluggable Strategies
State vs. Strategy
The Visiting Inspector
Visitor Trade-offs
Behavioral Pattern Recap
6.
Conclusion
Blueprints, Not Just Code
Creational: Building Objects
Structural: Connecting Parts
Behavioral: Managing Flow
Recap: Which Pattern When?
A Shared Language
Home
Courses
Design Patterns for Software Developers*
Analogy: Air Traffic Control
We'll cover the following...
This component is not supported in the current context
...