System Design · core

Object Modeling

Identifying classes, attributes, relationships.

system-designlow-level-design

Mental model

Object modeling is finding the small set of "things" the system has (usually 4-7) and the actions that happen between them. Prefer composition (this has-a) over inheritance (this is-a). A good model makes the next requirement easy to add.

How to study Object Modeling

Begin by restating the mental model in your own words, then connect it to a concrete system you have built or operated. Name the mechanism, the constraint it addresses, and the trade-off it introduces. Use Refactoring Guru — Design Patterns to check details, but close the source before writing your explanation. Retrieval is the learning step; rereading is only preparation.

Next, compare Object Modeling with State Machines. Ask what changes in correctness, latency, resource use, operability, and failure recovery. Complete Design a parking lot and preserve the command, input, output, and one failed attempt as evidence. Finish by explaining the idea without jargon to someone who has not studied the track.

Proof of understanding

  • Explain the mechanism from first principles and identify the state it reads or changes.
  • Give one situation where the concept is the right choice and one where it is not.
  • Predict a realistic failure mode before running the drill, then compare the prediction with evidence.
  • Connect the result to a roadmap or build artifact instead of treating the concept as isolated trivia.

Learn from primary sources

Practice and explain it back

Design a parking lot

Model a parking lot with vehicle classes (Car/Bike/Truck), spot sizes, a Lot/Level/Spot hierarchy, and entry/exit. Define the 4-6 classes, their fields, and the park()/leave() interactions.

Expected evidence: Class diagram + the park() flow showing how spot allocation handles size mismatch.

Open the interactive drill →

Review prompts

  • When does "is-a" inheritance actively hurt, and what is the tell?

Build evidence

Use a roadmap capstone to turn this concept into working evidence.

Prerequisites

None assigned yet.

Related concepts

Learning paths