Added car radio to use case.
Added dependency map.
Renamed 'product' to 'dependency'.
Updating all to reflect renaming of dependency to product, and the use of the dependency map.
Core Data inspired approach to dependency injection.

This approach evolved after a bit more thought. The object model is described by the use of object and relationship descriptions, akin to Core Data. Factories are supplied their dependencies by the model driven factory, as opposed to requesting them from yet another factory. This allows cycles to be resolved in advance.

In development. Need a better name for model driven factory - one that implies it links a factory map (a list of which object factory to use for which object descriptions) to the object descriptions. It essentially resolves dependencies and hands them to the appropriate factory. Perhaps object graph builder? Object graph factory with a factory map?