UVM factory registration

In reply to chr_sue:

Thanks chr_sue, but I think you’re not answering my questions.
Basically the question is below:

  1. Why do people call uvm_component_utils and uvm_object_utils factory registrations but the macro is actually just some variables and function definitions, not registering to the factory at all.
  2. Why we don’t call type_id::create to new the object at all but it’s still shown in the factory registered type list and appears to have been registered to the factory. Click the link I provided and run you’ll know what I’m saying