Call other package function without object but with UId

Hi, is it possible to call package a which defines struct a and function do_something_with_a(a: &A) from other package function given we know a objectid? From reading through resources I think its either not possible or is an antipattern, any help appreciated.

Something like this:

fn i_have_id(a_id: &UId) {
     let a: &A = object_from_id(a_id);
     a.do_something_with_a();
}