UVM Factory type_id::create singleton invocation

Going through the UVM base class code for uvm_registry and the create_component function, I am confused. So please pardon my ignorance here.

The create calls create_component_by_type() which invokes a get() that is a singleton. If the handle to the component/(object) already exists then it just returns it. What does this mean in the scheme of things? I
It does not prevent creation of multiple objects of the same class type, then what is the get() guarding against?

Thanks.

In reply to kernalmode1:

If you are referring to this line

obj = factory.create_component_by_type(get(),contxt,name,parent);

The get() returns a handle to a uvm_object_wrapper, which is a lightweight proxy for the the component, not the component itself.

If you want to learn more about how the factory design pattern works, check these resources:

https://verificationacademy.com/sessions/oop-design-pattern-examples