A practical, example-driven walk through the classic object-oriented design patterns. Each pattern is motivated by a concrete design problem, then generalised into a reusable solution. Below are my running notes per chapter.
Note on “composition”
Throughout the book (and my notes), “composition” is used in the general OO sense: one object is composed with another via a HAS-A relationship. This is the traditional usage and matches the GoF text. It’s looser than the more specific meanings UML has since attached to the word, so don’t read too much UML precision into it.
Chapters
Source
Head First Design Patterns by Eric Freeman & Elisabeth Robson.