I've dragged out some atttributes typed by Thing, Thing_, and Factory (except for the static CLASSY_THING which we'll examine later).
It is of course not good practice to have references to specific implementations like the default implementation Thing_, as that approach blocks dependency injection and breaks the golden rule of design-by-contract, it is much better to only ever obtain a Thing Interface from a Factory, however in this demonstration at least a non-null Thing is provided by default in operation getThing(), which uses an implementation-specific field thing_ to hold a Thing_. (We'll examine the factories later.)
Already the graphical, associative approach is helping to wire the system up nicely, and in fact it even highlights the lack of design-by-contract in some methods. Let's break it down further using package overview diagrams and focus diagrams ..

