Spec-Zone .ru
спецификации, руководства, описания, API
|
Какова "фабрика" и почему Вы хотели бы использовать тот? Фабрика, в этом контексте, является частью программного обеспечения, которое реализует один из шаблонов разработки "фабрики". Вообще, реализация фабрики полезна, когда Вы нуждаетесь в одном объекте управлять созданием и/или доступом к другим объектам. При использовании фабрики в Java™ Удаленный Вызов метода (Java RMI), можно сократить количество объектов, что Вы должны зарегистрировать в Java реестр RMI.
Когда Вы идете в банк, чтобы сделать депозит к Вашей учетной записи, Вы не приближаетесь к хранилищу, вытаскиваете секцию со своим именем на этом, заглядываете своим деньгам, закрываете секцию и отпуск. Думайте о том, как Вы первоначально установили, или открылись, учетная запись. Вы, вероятно, пошли в банк, говорили с Менеджером учетных записей, и подписали некоторые документы. В свою очередь, они дали Вам некоторые проверки, сберкнижку, или банковскую кредитную карточку, таким образом, Вы могли получить доступ к своей учетной записи в будущем.
Менеджер учетных записей является примером фабрики. Человек или Банкомат (ATM), который действует как менеджер учетных записей, управляют созданием и/или доступом к отдельным учетным записям.
Как только у Вас есть читательский билет, можно войти в библиотеку, и без дальнейшей суеты, только выйти со всеми Вашими материалами, правильно? Конечно, нет. Прежде, чем можно будет выйти из библиотеки, не выделяя систему сигнализации, следует проверить книгу, CD, или видеоленту, которую Вы хотите забрать домой. Таким образом, Вы представляете свой читательский билет, Вы предположили это, библиотекарь, который будет использовать Вашу карту, чтобы получить доступ к базе данных библиотеки, чтобы видеть, должны ли Вы какие-либо штрафы за просрочку платежа, и зарегистрировать эти новые материалы, как сданные в аренду Вам. В этом случае библиотекарь мог быть замечен как книжная фабрика, потому что библиотекарь управляет Вашим доступом к книгам.
Точно так же как любой другой Java программа RMI есть несколько основных проигрывателей: сервер, который производит один или более удаленные объекты, каждый из которых реализует удаленный интерфейс; клиент, который получает доступ к серверу имени ( rmiregistry
) получить ссылку на один из удаленных объектов; и rmiregistry
, который облегчает начальный контакт клиента с сервером.
Для изображения ниже и шагов, которые следуют, можно сделать следующие предположения:
Factory
и Product
FactoryImpl
реализации Factory
взаимодействуйте через интерфейс и ProductImpl
реализации Product
интерфейсFactoryImpl
регистры, или регистрируется, с rmiregistry
Factory
rmiregistry
возвращает удаленную ссылку на a FactoryImpl
FactoryImpl
получить удаленную ссылку на a ProductImpl
FactoryImpl
возвращает удаленную ссылку на существующее ProductImpl
или к тому, который это только создало, основанный на клиентском запросеProductImpl
В коде, 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.