In reply to Mayur Chaudhari:
The first method just points two handles of analysis port to same port object. It does not "connect" the ports in a UVM way. Ideally the connect method should be followed. It will populate all the internal arrays of UVM BCL while connecting and resolving the binds. The "m_provided_to" and "m_provided_by" arrays will get populated and fan out of each port will be monitored.
m_monitor.ap.connect(ap); // assignment through connect
This method guarantees the port connection rules check and will throw an run-time error if connection rules are not followed. Moreover, it gives more clarity in design connections.