Object Thinking¶
Designing software as a society of objects that have behavior and responsibilities — modeling the domain by what things do, not what data they hold — the mindset behind David West's Object Thinking and responsibility-driven design.
This section reframes objects away from data-bags-with-getters and toward autonomous agents that own behavior. It runs from the core behavior-first stance through tell-don't-ask, responsibility assignment, and CRC-card modeling, then grounds it all in turning requirements into a domain model — and closes honestly with where this mindset stops paying off.
Topics¶
| # | Topic | What you'll learn |
|---|---|---|
| 01 | Behavior-First Mindset | Objects as behavior not data, what an object does before what it has, anemic models as an anti-pattern |
| 02 | Anthropomorphism | Treating objects as little people with roles and responsibilities, the "what would this object say?" design heuristic |
| 03 | Tell, Don't Ask | Sending messages instead of pulling state, encapsulation, eliminating getter-driven logic, Law of Demeter |
| 04 | Responsibility-Driven Design | Assigning responsibilities, roles and collaborators, GRASP patterns, who-should-know-what |
| 05 | CRC Cards Technique | Class–Responsibility–Collaborator cards, role-play modeling, discovering objects through a scenario walkthrough |
| 06 | Domain Modeling from Requirements | Finding objects in the problem statement, noun/verb analysis and its limits, ubiquitous language, the model–code gap |
| 07 | When Object Thinking Fails | Where OO is the wrong tool, data-oriented and functional alternatives, over-modeling, performance-driven design |
How to use this section¶
Each topic has five depth levels — junior → middle → senior → professional — plus an interview Q&A bank and hands-on tasks. Start at your level and climb. Topics 01–05 build the mindset and its tools; 06 applies it to real requirements and 07 keeps you from over-applying it.
Part of the Engineering Thinking roadmap. To validate the designs you produce, move to Scientific & Hypothesis-Driven thinking.