Tento článek vás seznámí se zajímavým aspektem rozhraní nazývaným Marker Interface In a navázat na to s implementací. V tomto článku se budeme zabývat následujícími ukazateli,
- Serializovatelné rozhraní
- Klonovatelné rozhraní
- Vzdálené rozhraní
- Kroky k implementaci vzdáleného rozhraní
- Definujte vzdálené rozhraní
- Implementujte vzdálené rozhraní
- Vytvořte a spusťte vzdálenou aplikaci
- Vytvořte a spusťte klientskou aplikaci
Pojďme tedy začít,
Marker interface je rozhraní, které je prázdné, tj. Neobsahuje žádné metody ani pole. Je také známé jako rozhraní pro značkování a používá se k označení nebo informování JVM, že třída implementující toto rozhraní bude mít nějaké speciální chování. Efektivního způsobu klasifikace kódu lze dosáhnout pomocí rozhraní značek. Příklady takového rozhraní jsou: Serializovatelné, Klonovatelné a Vzdálené rozhraní.
Pohybující se v tomto článku o Marker Interface v Javě
Serializovatelné rozhraní
Serializaci v Javě lze definovat jako proces převodu stavu objektu na bajtový proud. Toho lze dosáhnout pomocí serializovatelného rozhraní, které je k dispozici v java.io.package. Je třeba poznamenat, že všechny podtypy serializovatelné třídy jsou samy o sobě serializovatelné.
Příklad:
import java.io. * class Main implements Serializable {int j String s // Konstruktor třídy public public Main (int j, String s) {this.j = j this.s = s}} veřejná třída Test {public static void main (String [] args) hodí IOException, ClassNotFoundException {Main obj = new Main (25, 'HelloWorld') // Serializing 'obj' FileOutputStream fos = new FileOutputStream ('pqr.txt') ObjectOutputStream oos = new ObjectOutputStream (fos) oos .writeObject (obj) // De-serializace objektu „obj“ FileInputStream fis = nový FileInputStream ('pqr.txt') ObjectInputStream ois = nový ObjectInputStream (fis) Main b = (Main) ois.readObject () // objekt down-casting System.out.println (b.j + '' + bs) // uzavírání streamů oos.close () ois.close ()}}
Výstup:
25 HelloWorld
Pohybující se v tomto článku o Marker Interface v Javě
Klonovatelné rozhraní:
Toto rozhraní najdete v balíčku java.lang. Klonování je mechanismus generování repliky nebo přesné kopie objektu s jiným názvem.
Cloneable Interface je implementováno třídou, která indikuje metodě object.clone (), že je legální, aby metoda vytvořila kopii instancí této třídy pole pro pole.
CloneNotSupportedException je vyvolána pro třídu, která vyvolá metodu clone bez implementace klonovatelného rozhraní.
Příklad:
import java.lang.Cloneable třída javaClone implementuje Cloneable {int j String s // Definování veřejného konstruktoru třídy javaClone (int j, String s) {this.j = j this.s = s} // Metoda přepsání clone () @ Přepsat chráněný objekt clone () hodí CloneNotSupportedException {return super.clone ()}} veřejná třída Main {public static void main (String [] args) hodí CloneNotSupportedException {javaClone c = new javaClone (18, 'HelloWorld') // cloning ' c 'a držení // odkaz na nový klonovaný objekt v b // down-casting javaClone b = (javaClone) c.clone () System.out.println (bj) System.out.println (bs)}}
Výstup:
18
Ahoj světe
Pohybující se v tomto článku o Marker Interface v Javě
Vzdálené rozhraní:
Vzdálený objekt lze definovat jako objekt, jehož metody lze vyvolat z jiného prostředí JVM, potenciálně na jiném hostiteli. Toto rozhraní se nachází v balíčku java.rmi. Vzdálený objekt musí tuto metodu implementovat přímo nebo nepřímo.
RMI:
Remote Method Convocation je API, které umožňuje objektu vyvolat metody na objektu běžícím v jiném JVM. Poskytuje vzdálenou komunikaci mezi dvěma aplikacemi pomocí následujících objektů: pahýl a kostra.
výukové programy pro Microsoft SQL pro začátečníky
Pahýl:
Útržek lze definovat jako objekt, který je přítomen na straně klienta a představuje vzdálený objekt. Vytváří informační blok, který se skládá z:
α Identifikátor vzdáleného objektu
α Název metody, která má být vyvolána
α Parametry ke vzdálenému JVM
Kostra:
Hlavním úkolem kostry je předat požadavky ze stubu vzdálenému objektu. Kromě toho plní níže uvedené úkoly:
α Vyvolá požadovanou metodu na původním vzdáleném objektu
α Přečte parametr zadaný pro vzdálený objekt
Pohybující se v tomto článku o Marker Interface v Javě
Kroky k implementaci vzdáleného rozhraní:
Definujte vzdálené rozhraní:
import java.rmi. * veřejné rozhraní AddAll rozšiřuje Remote {public int add (int r, int s) vyvolá RemoteException}
Zde je vzdálené rozhraní rozšířeno a RemoteException je deklarována všemi metodami vzdáleného rozhraní.
Pohybující se v tomto článku o Marker Interface v Javě
Implementujte vzdálené rozhraní:
Existují dva způsoby, jak zajistit implementaci vzdáleného rozhraní:
α Rozšířit třídu UnicastRemoteObject
α Použijte metodu exportObject () třídy UnicastRemoteObject
import java.rmi. * import java.rmi.server. * veřejná třída AddAllRemote rozšiřuje UnicastRemoteObject implementuje Adder {AddAllRemote () vyvolá RemoteException {super ()} public int add (int r, int s) {return r + s}}
Pomocí rmic (kompilátor rmi) vytvořte objekty pahýl a kostru.
Objekty pahýlu a kostry lze vytvořit pomocí kompilátoru rmi. Nástroj rmi vyvolá kompilátor RMI k vytvoření objektů.
rmic AddAllRemote
Pomocí nástroje rmiregistry spusťte službu registru.
Službu registru lze spustit pomocí nástroje rmregistry. Použije se výchozí číslo portu, pokud není zadáno uživatelem.
rmiregistry 5000
Pohybující se v tomto článku o Marker Interface v Javě
Vytvořte a spusťte vzdálenou aplikaci.
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 (Výjimka e) {System.out.println (e)}}}
Vzdálený objekt je ve výše uvedeném příkladu vázán názvem sak.
Pohybující se v tomto článku o Marker Interface v Javě
Vytvořte a spusťte klientskou aplikaci.
V uvedeném příkladu jsou server a klientské aplikace spuštěny na stejném počítači. Využívá se tedy localhost.
import 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))} catch (Výjimka e) {}}}
Pro přístup ke vzdálenému objektu z jiného počítače musí být název místního hostitele změněn na IP adresu nebo název hostitele, kde je vzdálený objekt umístěn.
Efektivního způsobu klasifikace kódu lze dosáhnout pomocí rozhraní značek.
Tak jsme dospěli ke konci tohoto článku. Pokud se chcete dozvědět více, podívejte se na Edureka, důvěryhodná online vzdělávací společnost. Školicí a certifikační kurz Edureka Java J2EE a SOA je navržen tak, aby vás vyškolil jak pro základní, tak pro pokročilé koncepty Java spolu s různými rámci Java, jako je Hibernate & Spring.
Máte na nás dotaz? Uveďte to prosím v sekci komentářů tohoto blogu a my se vám ozveme co nejdříve.