Како применити интерфејс маркера у Јави?

Овај чланак ће вас упознати са занимљивим аспектом интерфејса који се називају Маркер Интерфаце у Јави и пратити га након имплементације.

Овај чланак ће вас упознати са занимљивим аспектом интерфејса који се називају Маркер Интерфаце Ин и пратите са применом. Следећи смерници ће бити обрађени у овом чланку,

Па кренимо онда,





Сучеље маркера је сучеље које је празно, тј. Не садржи никакве методе или поља. Такође је познат као интерфејс за означавање и користи се за указивање или обавештавање ЈВМ-а да ће класа која примењује овај интерфејс имати неко посебно понашање. Ефикасан начин класификације кода може се постићи коришћењем интерфејса маркера. Примери таквог интерфејса су: серијски, клонирајући и удаљени интерфејс.

Прелазак са овим чланком о Маркер Интерфаце у Јави



Серијализован интерфејс

Серијализација у јави се може дефинисати као процес претварања стања објекта у ток бајтова. То се може постићи коришћењем интерфејса који се може серирати, а који је присутан у јава.ио.пацкаге. Мора се приметити да су сви подтипови класе која се серилизује и сами сериализују.

Пример:

импорт јава.ио. * цласс Маин имплементира Сериализабле {инт ј Стринг с // Конструктор класе публиц Маин (инт ј, Стринг с) {тхис.ј = ј тхис.с = с}} Тест јавне класе {публиц статиц воид маин (Стринг [] аргс) баца ИОЕкцептион, ЦлассНотФоундЕкцептион {Маин обј = нев Маин (25, 'ХеллоВорлд') // Серијализација 'обј' ФилеОутпутСтреам фос = нев ФилеОутпутСтреам ('пкр.ткт') ОбјецтОутпутСтреам оос = нев ОбјецтОутпутСтреам (нев ОбјецтОутпутСтреам) .вритеОбјецт (обј) // Десериализација 'обј' ФилеИнпутСтреам фис = нев ФилеИнпутСтреам ('пкр.ткт') ОбјецтИнпутСтреам оис = нев ОбјецтИнпутСтреам (фис) Маин б = (Маин) оис.реадОбјецт () // довн-цастинг објецт Систем.оут.принтлн (б.ј + '' + бс) // затварање токова оос.цлосе () оис.цлосе ()}}

Излаз:
25 ХеллоВорлд



Прелазак са овим чланком о Маркер Интерфаце у Јави

Цлонеабле Интерфаце:

Овај интерфејс се може наћи у пакету јава.ланг. Клонирање је механизам генерисања реплике или тачне копије објекта са другим именом.
Клонибилни интерфејс имплементира класа да би указала на методу објецт.цлоне () да је легално да метода прави копију примерака те класе поље за поље.
ЦлонеНотСуппортедЕкцептион се баца за класу која позива методу клонирања без примене клонирајућег интерфејса.

Пример:

импорт јава.ланг.Цлонеабле цласс јаваЦлоне имплементира Цлонеабле {инт ј Стринг с // Дефинисање јавног конструктора класе јаваЦлоне (инт ј, Стринг с) {тхис.ј = ј тхис.с = с} // Замена методе цлоне () @ Замена заштићеног клона објекта () баца ЦлонеНотСуппортедЕкцептион {ретурн супер.цлоне ()}} јавна класа Маин {публиц статиц воид маин (Стринг [] аргс) баца ЦлонеНотСуппортедЕкцептион {јаваЦлоне ц = нев јаваЦлоне (18, 'ХеллоВорлд') // цлонинг ' ц 'и држање // нове референце клонираног објекта у б // јаваЦлоне пребацивање б = (јаваЦлоне) ц.цлоне () Систем.оут.принтлн (бј) Систем.оут.принтлн (бс)}}

Излаз:
18
Здраво Свете

Прелазак са овим чланком о Маркер Интерфаце у Јави

Удаљени интерфејс:

Удаљени објекат може се дефинисати као објекат чије се методе могу позвати из другог ЈВМ-а, потенцијално на другом хосту. Овај интерфејс се налази у пакету јава.рми. Удаљени објекат мора применити ову методу директно или индиректно.

РМИ:

Даљинско сазивање метода је АПИ који омогућава објекту да позива методе на објекту покренутом у другом ЈВМ-у. Омогућава даљинску комуникацију између две апликације помоћу следећих објеката: клатна и скелета.

Стуб:

Стуб се може дефинисати као објекат који је присутан на клијентској страни и представља удаљени објекат. Ствара информативни блок који се састоји од:
α Идентификатор удаљеног објекта
α Назив методе на коју се треба позвати
α Параметри за удаљени ЈВМ

Скелет:

Главни посао скелетног објекта је прослеђивање захтева из клица на удаљени објекат. Поред тога, обавља и задатке дате у наставку:
α Позива жељену методу на оригиналном удаљеном објекту
α Чита параметар наведен за удаљени објекат

Прелазак са овим чланком о Маркер Интерфаце у Јави

Кораци за примену даљинског интерфејса:

Дефинишите даљински интерфејс:

импорт јава.рми. * јавни интерфејс АддАлл проширује Ремоте {јавни инт адд (инт р, инт с) баца РемотеЕкцептион}

Овде се даљински интерфејс проширује и РемотеЕкцептион се декларише свим методама удаљеног интерфејса.

Прелазак са овим чланком о Маркер Интерфаце у Јави

Примените даљински интерфејс:

Постоје два начина за омогућавање имплементације удаљеног интерфејса:
α Проширите класу УницастРемотеОбјецт
α Користите метод екпортОбјецт () класе УницастРемотеОбјецт

импорт јава.рми. * импорт јава.рми.сервер. * јавна класа АддАллРемоте проширује УницастРемотеОбјецт имплементира Аддер {АддАллРемоте () баца РемотеЕкцептион {супер ()} публиц инт адд (инт р, инт с) {ретурн р + с}}

Користећи рмиц (рми цомпилер), креирајте објекте клизача и скелета.

Објекти клизача и скелета могу се креирати помоћу рми компајлера. Алат рми позива РМИ компајлер да креира објекте.
рмиц АддАллРемоте

Помоћу алата рмирегистри покрените услугу регистра.

Услуга регистра може се покренути помоћу алата рмрегистри. Задани број порта користи се ако га корисник није одредио.
рмирегистри 5000

Прелазак са овим чланком о Маркер Интерфаце у Јави

Креирајте и покрените удаљену апликацију.

импорт јава.рми. * импорт јава.рми.регистри. * публиц цласс Сервер {публиц статиц воид маин (Стринг аргс []) {три {АддАлл стуб = нев АддАллРемоте () Наминг.ребинд ('рми: // лоцалхост: 5000 / сак ', стуб)} цатцх (Изузетак е) {Систем.оут.принтлн (е)}}}

Удаљени објекат је везан именом сак у горњем примеру.

Прелазак са овим чланком о Маркер Интерфаце у Јави

Креирајте и покрените клијентску апликацију.

У датом примеру, сервер и клијентске апликације се изводе на истој машини. Дакле, користи се лоцалхост.

импорт јава.рми. * клијент јавне класе {публиц статиц воид маин (Стринг аргс []) {три {АддАлл стуб = (АддАлл) Наминг.лоокуп ('рми: // лоцалхост: 5000 / сак') Систем.оут.принтлн (стуб.адд (29,18))} цатцх (Изузетак е) {}}}

Да бисте приступили удаљеном објекту са друге машине, име локалног хоста мора бити промењено у ИП адреса или име хоста на коме се налази удаљени објекат.

структура података речника у јави

Ефикасан начин класификације кода може се постићи коришћењем интерфејса маркера.

Тако смо дошли до краја овог чланка. Ако желите да сазнате више, погледајте Едурека, поуздана компанија за учење на мрежи. Едурекин курс за обуку и сертификацију Јава Ј2ЕЕ и СОА осмишљен је тако да вас оспособи за основне и напредне Јава концепте заједно са разним Јава оквирима попут Хибернате & Спринг.

Имате питање за нас? Молимо вас да га помените у одељку за коментаре на овом блогу и јавићемо вам се што је пре могуће.