Философия Java


Удаленный интерфейс


RMI делает тыжелым использование интерфейсов. Когда вы хотите создать удаленный объект, вы помечаете, что лежащую в основе раелизацию нужно передавать через интерфейс. Таким образом, когда клиент получает ссылку на удаленный объект, на самом деле он получаете ссылку на интерфейс, который выполняет соединение с определенныму местом кода,общающимся по сети. Но вы не заботитесь об этом, вы просто посылаете сообщения через ссылку на интерфейс.

Когда вы создаете удаленный интерфейс, вы должны следовать следующей иснтрукции:

  1. Удаленный интерфейс должен быь публичным - public (он не может иметь “доступ на уровне пакета”, так же он не может быть “дружественным”). В противном случае клиенты будут получать ошибку при попытке загрузки объекта, реализующего удаленный интерфейс.
  2. Удаленный интерфейс должен расширять интерфейс java.rmi.Remote.
  3. Каждый метод удаленного интерфейса должен объявлять java.rmi.RemoteException в своем предложении throws в добавок к любым исключениям, специфичным для приложения.
  4. Удаленный объект, передаваемый как аргумент или возвращаемое значение (либо напрямую, либо как к части локального объекта), должен быть объявлен как удаленный интерфейс, а не реализация класса.

Ниже приведен простой удаленный интерфейс, представляющий сервис точного времени:

//: c15:rmi:PerfectTimeI.java

// Удаленный интерфейс PerfectTime.

package c15.rmi; import java.rmi.*;

interface PerfectTimeI extends Remote { long getPerfectTime() throws RemoteException; } ///:~

Он выглядит как любой другой интерфейс, за исключением того, что расширяет Remote и все его методы выбрасывают RemoteException. Помните, что interface и все его методы автоматически становятся public.




Начало  Назад  Вперед



Книжный магазин