Denne artikkelen vil orientere deg om et interessant aspekt av grensesnitt kalt Marker Interface In og følge den opp med implementering. Følgende tips vil bli dekket i denne artikkelen,
- Serialiserbart grensesnitt
- Klonabelt grensesnitt
- Eksternt grensesnitt
- Trinn for å implementere eksternt grensesnitt
- Definer et eksternt grensesnitt
- Implementere det eksterne grensesnittet
- Opprett og start Remote-applikasjonen
- Opprett og start klientapplikasjonen
Så la oss komme i gang da,
Markørgrensesnitt er et grensesnitt som er tomt, dvs. det inneholder ikke noen metoder eller felt. Det er også kjent som et merkingsgrensesnitt og brukes til å indikere eller informere JVM om at en klasse som implementerer dette grensesnittet vil ha en spesiell oppførsel. En effektiv måte å klassifisere kode på kan oppnås ved hjelp av markørgrensesnittet. Eksempler på et slikt grensesnitt er: Serializable, Cloneable and Remote Interface.
Flytter med denne artikkelen om Marker Interface i Java
Serialiserbart grensesnitt
Serialisering i java kan defineres som prosessen med å konvertere tilstanden til et objekt til en byte-strøm. Dette kan oppnås ved å bruke det serielle grensesnittet som finnes i java.io.package. Det må bemerkes at alle undertyper av en serie som kan serieiseres, i seg selv kan serialiseres.
Eksempel:
import java.io. * klasse Hovedredskaper Serialiserbar {int j String s // En klassekonstruktør offentlig Main (int j, String s) {this.j = j this.s = s}} public class Test {public static void main (String [] args) kaster IOException, ClassNotFoundException {Main obj = new Main (25, 'HelloWorld') // Serializing 'obj' FileOutputStream fos = new FileOutputStream ('pqr.txt') ObjectOutputStream oos = new ObjectOutputStream (fos) oos .writeObject (obj) // Avserialisering av 'obj' FileInputStream fis = ny FileInputStream ('pqr.txt') ObjectInputStream ois = ny ObjectInputStream (fis) Main b = (Main) ois.readObject () // nedstøpende objekt System.out.println (b.j + '' + bs) // lukkestrømmer oos.close () ois.close ()}}
Produksjon:
25 HelloWorld
Flytter med denne artikkelen om Marker Interface i Java
Klonabelt grensesnitt:
Dette grensesnittet finner du i pakken java.lang. Kloning er mekanismen for å generere en kopi eller en eksakt kopi av et objekt med et annet navn.
Det klonable grensesnittet er implementert av en klasse for å indikere til objektet.clone () -metoden at det er lovlig for metoden å lage en felt-for-felt-kopi av forekomster av den klassen.
En CloneNotSupportedException kastes for en klasse som påkaller klonmetoden uten å implementere et klonabelt grensesnitt.
Eksempel:
importere java.lang.Cloneable klasse javaClone implementerer Cloneable {int j String s // Definere en klassekonstruktør offentlig javaClone (int j, String s) {this.j = j this.s = s} // Overstyrende klon () metode @ Overstyr beskyttet Object clone () kaster CloneNotSupportedException {return super.clone ()}} public class Main {public static void main (String [] args) throw CloneNotSupportedException {javaClone c = new javaClone (18, 'HelloWorld') // cloning ' c 'og holder // ny klonet objektreferanse i b // nedstøping javaClone b = (javaClone) c.clone () System.out.println (bj) System.out.println (bs)}}
Produksjon:
18
Hei Verden
Flytter med denne artikkelen om Marker Interface i Java
Eksternt grensesnitt:
Et eksternt objekt kan defineres som et objekt hvis metoder kan påkalles fra en annen JVM, potensielt på en annen vert. Dette grensesnittet finnes i java.rmi-pakken. Et eksternt objekt må implementere denne metoden direkte eller indirekte.
RMI:
Remote Method Convocation er et API som gjør det mulig for et objekt å påkalle metoder på et objekt som kjører i en annen JVM. Det gir ekstern kommunikasjon mellom de to applikasjonene ved hjelp av følgende objekter: stubbe og skjelett.
Stubbe:
En stub kan defineres som et objekt som er til stede på klientsiden og representerer det eksterne objektet. Det skaper en informasjonsblokk som består av:
α Identifikator for det eksterne objektet
α Navn på metoden som skal påberopes
α Parametere til den eksterne JVM
Skjelett:
Hovedoppgaven til skjelettobjektet er å overføre forespørslene fra stubben til det eksterne objektet. I tillegg utfører den oppgavene nedenfor:
α Den påkaller den ønskede metoden på det opprinnelige eksterne objektet
α Les parameteren som er spesifisert for det eksterne objektet
Flytter med denne artikkelen om Marker Interface i Java
Fremgangsmåte for å implementere eksternt grensesnitt:
Definer et eksternt grensesnitt:
importer java.rmi. * offentlig grensesnitt AddAll utvider Remote {public int add (int r, int s) kaster RemoteException}
Her utvides Remote-grensesnittet, og RemoteException er erklært med alle metodene i det eksterne grensesnittet.
Flytter med denne artikkelen om Marker Interface i Java
Implementere det eksterne grensesnittet:
Det er to måter å gi implementering til det eksterne grensesnittet:
α Utvid klassen UnicastRemoteObject
α Bruk eksportObject () -metoden i UnicastRemoteObject-klassen
importer java.rmi. * import java.rmi.server. * offentlig klasse AddAllRemote utvider UnicastRemoteObject implementerer Adder {AddAllRemote () kaster RemoteException {super ()} public int add (int r, int s) {return r + s}}
Bruk rmic (rmi-kompilator) til å lage stubben og skjelettobjektene.
Stubben og skjelettobjektene kan opprettes ved hjelp av rmi-kompilatoren. Rmi-verktøyet påkaller RMI-kompilatoren for å lage objektene.
rmic AddAllRemote
Ved hjelp av rmiregistry-verktøyet starter du registretjenesten.
Registreringstjenesten kan startes ved hjelp av rmregistry-verktøyet. Et standard portnummer brukes hvis det ikke er spesifisert av brukeren.
rmiregistry 5000
Flytter med denne artikkelen om Marker Interface i Java
Opprett og start den eksterne applikasjonen.
import java.rmi. * import java.rmi.registry. * public class Server {public static void main (String args []) {try {AddAll stub = new AddAllRemote () Naming.rebind ('rmi: // localhost: 5000 / sak ', stub)} catch (Unntak e) {System.out.println (e)}}
Det fjerne objektet blir bundet av navnet sak i eksemplet ovenfor.
Flytter med denne artikkelen om Marker Interface i Java
Opprett og start klientapplikasjonen.
I eksemplet som blir gitt kjøres serveren og klientapplikasjonene på samme maskin. Dermed blir bruken av localhost gjort.
konvertere til binær i python
importer java.rmi. * public class Client {public static void main (String args []) {try {AddAll stub = (AddAll) Naming.lookup ('rmi: // localhost: 5000 / sak') System.out.println (stub.add (29,18))} fangst (Unntak e) {}}}
For å få tilgang til det eksterne objektet fra en annen maskin, må det lokale vertsnavnet endres til IP-adressen eller vertsnavnet der det eksterne objektet ligger.
En effektiv måte å klassifisere kode på kan oppnås ved hjelp av markørgrensesnittet.
Dermed har vi kommet til en slutt på denne artikkelen. Hvis du ønsker å lære mer, sjekk ut av Edureka, et pålitelig online læringsfirma. Edurekas Java J2EE- og SOA-opplæring og sertifiseringskurs er designet for å trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.
Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet på denne bloggen, så kommer vi tilbake til deg så snart som mulig.