Skip to main content

Reference and Selective Reading

You do not need to read the source books front-to-back for this module. Use the concept pages and practice pages first. Open these local chunks only when you need alternate exposition, a precise definition, or more worked examples.

Source Roles

SourceRoleWhy it is here
Head First Design PatternsPrimary narrative teacherBest at explaining why a pattern exists and what force it absorbs
Design Patterns (GoF)Canonical referenceBest for precise definitions, participants, applicability, and sample code
Refactoring (Fowler)Selective supportBest for the mechanics of moving toward (or away from) a pattern safely
Clean Code (Martin)Selective supportBest short chapter on systems and dependency injection
Good Code, Bad Code (Tom Long)Judgment supportBest modern restatement of "composition over inheritance" and DI
OOADBackground onlyAlternate angle on inheritance design; rarely needed here

Read Only If Stuck

Creational -- Construction Flexibility

Structural -- Interface Bridging

Structural -- Composition and Layering

Pragmatic Pattern Selection

Dependency Injection and Composition Roots

Optional Deep Dive

Concept-to-Source Map

Primary conceptBest source if stuckWhy this source
Factory MethodGoF: Factory Method -- ApplicabilityCanonical applicability list
Abstract FactoryGoF: Abstract Factory -- IntentCanonical intent and family-of-products argument
BuilderGood Code, Bad Code: The Builder PatternStrongest modern fluent-Builder treatment
Prototype / SingletonHead First: Dissecting the Classic SingletonBest warning-first treatment
AdapterHead First: The Adapter and Facade PatternsBest intent-first explanation
FacadeHead First: Lights, Camera, FacadeClearest real-world example
BridgeGoF: Bridge -- IntentOnly thorough local source
CompositeHead First: The Composite Pattern DefinedBest safety-vs-transparency discussion
DecoratorHead First: Meet the Decorator PatternBest narrative with Java I/O anchor
ProxyHead First: The Proxy PatternCovers all three major kinds with one story
Pattern categories and selectionGoF: 1.7 How to Select a Design PatternCanonical checklist
Pattern misuse and cargo-cultingHead First: May the Force Be with You (Part 1)Most direct treatment of force-based judgment
Simpler alternativesGood Code, Bad Code: Use CompositionModern argument for composition and small units
Dependency injectionClean Code: Chapter 11 -- SystemsShortest clearest DI primer
Composition rootsExternal: Mark Seemann, Composition RootCanonical short definition of the pattern