Software Architecture Fundamentals - 7 : Design patterns
Strategy pattern
Define a family of algorithm, encapsulate each one, and make them interchangeable
Command pattern
Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations.
This is not required in a language that has closures, as the required block of code can be sent directly to the method.
Good and bad of patterns
Good common vocabulary
Design guide
Terrible implementation guide
Not a panacea
Terrible religion
Combination of patterns are useful
You may not use patterns because it inhibits your creativity
Patterns today
Many “classic” GoF patterns encapsulated or deprecated by language evolution
Iterator Command
Paradigms beyond just object-orientation
Language dictates the patterns
OOP are large and coarse-grained - end up making data structures
blub developer
understand the idiomatic patterns for your language/platform
clarity vs obscurity