UVM Factory create method

Hi everyone,
I have a doubt in factory create method for uvm_components. Please correct me if there’s any mistake in my understanding.
All uvm_components (env, agent, driver) has constructors defined inside them. And it’s always recommended to create these components during the build_phase using the factory create method. This internally calls the constructor defined in the respective component. If that’s the case, why can’t we directly call the constructor? Does it make any difference to the verification infrastructure if I do so?

Thanks in advance!

In reply to Ramakrishna Melgiri:
The factory create method delegates the construction of the requested object which gives the factory an opportunity to substitute a different object from the one requested. That is the point of the factory. Directly calling the constructor removes that opportunity. See my SystemVerilog OOP course, especially the third session on the factory design pattern.

In reply to dave_59:

Thank you Dave for the quick response. That really helps.