If our objects are relatively simple, putting them on a shelf will be trivial. For objects that are not complex containers or large collections, we only have to work out a key-to-value mapping. For objects that are more complex – typically objects that contain other objects – we have to make some additional design decisions regarding the granularity of access and references among objects. We'll look at the simple case first, where all we have to design is the key that is used to access our objects. Then, we'll look at the more complex cases, where granularity and object references come into play.
Let's see how to design objects with type hints.