Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации

Применение Шаблона "фабрика" к RMI Java™

Какова "фабрика" и почему Вы хотели бы использовать тот? Фабрика, в этом контексте, является частью программного обеспечения, которое реализует один из шаблонов разработки "фабрики". Вообще, реализация фабрики полезна, когда Вы нуждаетесь в одном объекте управлять созданием и/или доступом к другим объектам. При использовании фабрики в Java™ Удаленный Вызов метода (Java RMI), можно сократить количество объектов, что Вы должны зарегистрировать в Java реестр RMI.

Примеры Фабрик в Реальном мире:

Банк

Когда Вы идете в банк, чтобы сделать депозит к Вашей учетной записи, Вы не приближаетесь к хранилищу, вытаскиваете секцию со своим именем на этом, заглядываете своим деньгам, закрываете секцию и отпуск. Думайте о том, как Вы первоначально установили, или открылись, учетная запись. Вы, вероятно, пошли в банк, говорили с Менеджером учетных записей, и подписали некоторые документы. В свою очередь, они дали Вам некоторые проверки, сберкнижку, или банковскую кредитную карточку, таким образом, Вы могли получить доступ к своей учетной записи в будущем.

Менеджер учетных записей является примером фабрики. Человек или Банкомат (ATM), который действует как менеджер учетных записей, управляют созданием и/или доступом к отдельным учетным записям.

Библиотека

Давайте думать о том, как книга, компакт-диск, или видеолента добираются с библиотечной полки в Ваш дом. Прежде, чем можно будет проверить любой материал, следует сначала получить читательский билет от библиотекаря. В этом случае библиотекарь мог быть просмотрен как фабрика читательского билета, потому что библиотекарь управляет созданием новых экземпляров читательского билета.

Как только у Вас есть читательский билет, можно войти в библиотеку, и без дальнейшей суеты, только выйти со всеми Вашими материалами, правильно? Конечно, нет. Прежде, чем можно будет выйти из библиотеки, не выделяя систему сигнализации, следует проверить книгу, CD, или видеоленту, которую Вы хотите забрать домой. Таким образом, Вы представляете свой читательский билет, Вы предположили это, библиотекарь, который будет использовать Вашу карту, чтобы получить доступ к базе данных библиотеки, чтобы видеть, должны ли Вы какие-либо штрафы за просрочку платежа, и зарегистрировать эти новые материалы, как сданные в аренду Вам. В этом случае библиотекарь мог быть замечен как книжная фабрика, потому что библиотекарь управляет Вашим доступом к книгам.

Как Фабрика Работает в Java RMI?

Точно так же как любой другой Java программа RMI есть несколько основных проигрывателей: сервер, который производит один или более удаленные объекты, каждый из которых реализует удаленный интерфейс; клиент, который получает доступ к серверу имени ( rmiregistry) получить ссылку на один из удаленных объектов; и rmiregistry, который облегчает начальный контакт клиента с сервером.

Для изображения ниже и шагов, которые следуют, можно сделать следующие предположения:

Иллюстрирует эти 6 упомянутых ниже действий.

  1. FactoryImpl регистры, или регистрируется, с rmiregistry
  2. Клиент запрашивает ссылку на a Factory
  3. rmiregistry возвращает удаленную ссылку на a FactoryImpl
  4. Клиент вызывает удаленный метод на FactoryImpl получить удаленную ссылку на a ProductImpl
  5. FactoryImpl возвращает удаленную ссылку на существующее ProductImpl или к тому, который это только создало, основанный на клиентском запросе
  6. Клиент вызывает удаленный метод на ProductImpl

 

Как Банк и Библиотека могли быть Реализованы в Java RMI?

Банк

В коде, AccountManager был бы удаленный интерфейс с одним или более удаленными методами. Эти методы возвратили бы объекты, которые реализуют Account интерфейс. Подобным способом, Account был бы интерфейс, который объявил все операции, которые человек мог выполнить на экземпляре учетной записи, таком как внесение или удаление денег, получение баланса счета, или перечисление новых транзакций учетной записи.

В Java RMI, только экземпляр AccountManager реализация была бы зарегистрирована в Java реестр RMI. AccountManager реализация была бы фабрикой, возвращая удаленные ссылки на (или сериализированные экземпляры) Account реализации, как Ваш сберегательный счет.

Библиотека

В примере библиотеки, Librarian был бы удаленный интерфейс с одним или более методами, которые возвратят объекты, которые реализуют LibraryCard интерфейс. Кроме того, Librarian у интерфейса были бы методы, чтобы позволить, Вы получаете доступ к книгам, CD, или видеозаписям, которые реализовывали Loanable интерфейс.

В Java RMI, только экземпляр Librarian реализация была бы зарегистрирована в Java реестр RMI. Librarian реализация была бы фабрикой, возвращая удаленные ссылки на (или сериализированные экземпляры) LibraryCard реализации и Loanable объектные реализации.

В то время как примеры банка и библиотеки, представленные здесь, возможно, не полностью полны, они не разрабатываются, чтобы быть полными, а скорее учебным образом полезными в описании шаблона "фабрика" в Java RMI.



Oracle и/или его филиалы Авторское право © 1993, 2012, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами