<tdclass="cellrowborder"valign="top"width="33.33333333333333%"headers="mcps1.2.4.1.3 "><pid="p13885724405"><aname="p13885724405"></a><aname="p13885724405"></a>Obtains the holder of a remote proxy object. This method must be implemented by the derived classes of <strongid="b18927631105113"><aname="b18927631105113"></a><aname="b18927631105113"></a>IRemoteBroker</strong>. If you call this method on the stub, the <strongid="b7932163110519"><aname="b7932163110519"></a><aname="b7932163110519"></a>RemoteObject</strong> is returned; if you call this method on the proxy, the proxy object is returned.</p>
<tdclass="cellrowborder"valign="top"width="33.33333333333333%"headers="mcps1.2.4.1.3 "><pid="p1188582414016"><aname="p1188582414016"></a><aname="p1188582414016"></a>Called to process a request from the proxy and return the result. Derived classes need to override this method.</p>
<tdclass="cellrowborder"valign="top"width="33.33333333333333%"headers="mcps1.2.4.1.3 "><pid="p688592413018"><aname="p688592413018"></a><aname="p688592413018"></a>Service proxy classes are derived from the <strongid="b169739356519"><aname="b169739356519"></a><aname="b169739356519"></a>IRemoteProxy</strong> class.</p>
</td>
</tr>
</tbody>
</table>
| Class/Interface | Function | Description |
| --------------- | -------- | ----------- |
| IRemoteBroker | sptr<IRemoteObject> AsObject() | Obtains the holder of a remote proxy object. This method must be implemented by the derived classes of **IRemoteBroker**. If you call this method on the stub, the **RemoteObject** is returned; if you call this method on the proxy, the proxy object is returned. |
| IRemoteStub | virtual int OnRemoteRequest(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) | Called to process a request from the proxy and return the result. Derived classes need to override this method. |
| IRemoteProxy | | Service proxy classes are derived from the **IRemoteProxy** class. |
## How to Develop<a name="section4207112818418"></a>