Ответ 1
Разница в том, что Naming
- это класс утилиты со статическими методами, а Registry
- удаленный интерфейс. Неудивительно, что Naming
вызывает Registry
внутренне. Обратите внимание, что аргументы name
, которые вы передаете в java.rmi.Naming
, находятся в формате URL и включают расположение реестра, тогда как java.rmi.registry.Registry
name
- это просто имя.
Например, вы вызываете что-то вроде этого:
Naming.rebind("//host/objName", myObj);
тогда как с Registry
вам нужен существующий дескриптор объекта реестра, и вы вызываете:
Registry registry = LocateRegistry.getRegistry("host");
registry.rebind("objName", myObj);
Итак, Naming
- это просто класс удобства, который позволяет вам вручную искать Registry
- он выполняет поиск и восстановление реестра за один шаг.