Ten artykuł poinstruuje Cię o interesującym aspekcie interfejsów zwanym jako interfejs markera i kontynuuj wdrażanie. Poniższe wskazówki zostaną omówione w tym artykule,
- Interfejs szeregowy
- Interfejs klonowalny
- Interfejs zdalny
- Kroki do wdrożenia interfejsu zdalnego
- Zdefiniuj interfejs zdalny
- Zaimplementuj interfejs zdalny
- Utwórz i uruchom aplikację Remote
- Utwórz i uruchom aplikację kliencką
Więc zacznijmy,
Interfejs markera to interfejs, który jest pusty, tj. Nie zawiera żadnych metod ani pól. Jest również nazywany interfejsem znakowania i służy do wskazywania lub informowania maszyny JVM, że klasa implementująca ten interfejs będzie zachowywać się w specjalny sposób. Efektywny sposób klasyfikowania kodu można osiągnąć za pomocą interfejsu znaczników. Przykładami takiego interfejsu są: interfejs szeregowy, klonowalny i zdalny.
Przechodząc z tym artykułem o interfejsie Marker w Javie
Interfejs szeregowy
Serializację w Javie można zdefiniować jako proces konwersji stanu obiektu na strumień bajtów. Można to osiągnąć za pomocą serializowalnego interfejsu, który znajduje się w pakiecie java.io.package. Należy zauważyć, że wszystkie podtypy klasy możliwej do serializacji są same w sobie możliwe do serializacji.
Przykład:
import java.io. * class Główne implementacje Serializable {int j String s // Konstruktor klasy public Main (int j, String s) {this.j = j this.s = s}} public class Test {public static void main (String [] args) rzuca IOException, ClassNotFoundException {Main obj = new Main (25, 'HelloWorld') // Serializing 'obj' FileOutputStream fos = new FileOutputStream ('pqr.txt') ObjectOutputStream oos = new ObjectOutputStream () oos .writeObject (obj) // De-serializing 'obj' FileInputStream fis = new FileInputStream ('pqr.txt') ObjectInputStream ois = new ObjectInputStream (fis) Main b = (Main) ois.readObject () // down-casting obiektu System.out.println (b.j + '' + bs) // zamykanie strumieni oos.close () ois.close ()}}
Wynik:
25 HelloWorld
Przechodząc z tym artykułem o interfejsie Marker w Javie
Interfejs klonowalny:
Ten interfejs można znaleźć w pakiecie java.lang. Klonowanie to mechanizm generowania repliki lub dokładnej kopii obiektu o innej nazwie.
Interfejs Cloneable jest implementowany przez klasę, aby wskazać metodzie object.clone (), że metoda może tworzyć kopie instancji tej klasy w trybie pole dla pola.
CloneNotSupportedException jest generowany dla klasy, która wywołuje metodę clone bez implementowania klonowalnego interfejsu.
Przykład:
import java.lang.Cloneable klasa javaClone implementuje Cloneable {int j String s // Definiowanie konstruktora klasy public javaClone (int j, String s) {this.j = j this.s = s} // Przesłanianie metody clone () @ Zastąp chroniony obiekt clone () rzuca CloneNotSupportedException {return super.clone ()}} public class Main {public static void main (String [] args) rzuca CloneNotSupportedException {javaClone c = new javaClone (18, 'HelloWorld') // cloning ' c 'i przytrzymując // nowe odwołanie do sklonowanego obiektu w b // przesyłanie w dół javaClone b = (javaClone) c.clone () System.out.println (bj) System.out.println (bs)}}
Wynik:
18
Witaj świecie
Przechodząc z tym artykułem o interfejsie Marker w Javie
Zdalny interfejs:
Obiekt zdalny można zdefiniować jako obiekt, którego metody można wywoływać z innej maszyny JVM, potencjalnie na innym hoście. Ten interfejs znajduje się w pakiecie java.rmi. Obiekt zdalny musi implementować tę metodę bezpośrednio lub pośrednio.
RMI:
Zdalna konwersja metod to interfejs API, który umożliwia obiektowi wywoływanie metod na obiekcie działającym w innej JVM. Zapewnia zdalną komunikację między dwiema aplikacjami przy użyciu następujących obiektów: stub i szkielet.
Kikut:
Odcinek można zdefiniować jako obiekt, który jest obecny po stronie klienta i reprezentuje obiekt zdalny. Tworzy blok informacyjny, na który składają się:
α Identyfikator zdalnego obiektu
α Nazwa metody, która ma zostać wywołana
Parametry α do zdalnej maszyny JVM
Szkielet:
pivot i unpivot na serwerze sql
Głównym zadaniem obiektu szkieletowego jest przekazywanie żądań z kodu pośredniczącego do obiektu zdalnego. Ponadto wykonuje zadania podane poniżej:
α Wywołuje żądaną metodę na oryginalnym zdalnym obiekcie
α Odczytuje parametr określony dla zdalnego obiektu
Przechodząc z tym artykułem o interfejsie Marker w Javie
Kroki do wdrożenia interfejsu zdalnego:
Zdefiniuj zdalny interfejs:
import java.rmi. * interfejs publiczny AddAll extends Remote {public int add (int r, int s) throws RemoteException}
Tutaj interfejs Remote jest rozszerzony, a RemoteException jest zadeklarowany ze wszystkimi metodami interfejsu zdalnego.
Przechodząc z tym artykułem o interfejsie Marker w Javie
Zaimplementuj zdalny interfejs:
Istnieją dwa sposoby zapewnienia implementacji dla interfejsu zdalnego:
α Rozszerz klasę UnicastRemoteObject
α Użyj metody exportObject () klasy UnicastRemoteObject
import java.rmi. * import java.rmi.server. * public class AddAllRemote extends UnicastRemoteObject implementuje Adder {AddAllRemote () rzuca RemoteException {super ()} public int add (int r, int s) {return r + s}}
Używając rmic (kompilator rmi), utwórz obiekty pośredniczące i szkieletowe.
Obiekty pośredniczące i szkieletowe można tworzyć za pomocą kompilatora rmi. Narzędzie rmi wywołuje kompilator RMI w celu utworzenia obiektów.
rmic AddAllRemote
Używając narzędzia rmiregistry, uruchom usługę rejestru.
Usługę rejestru można uruchomić za pomocą narzędzia rmregistry. Używany jest domyślny numer portu, jeśli nie zostanie określony przez użytkownika.
rmiregistry 5000
Przechodząc z tym artykułem o interfejsie Marker w Javie
Utwórz i uruchom aplikację zdalną.
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 (wyjątek e) {System.out.println (e)}}}
W powyższym przykładzie zdalny obiekt jest związany nazwą sak.
Przechodząc z tym artykułem na temat interfejsu Marker w Javie
Utwórz i uruchom aplikację kliencką.
W podanym przykładzie serwer i aplikacje klienckie są uruchamiane na tym samym komputerze. W ten sposób wykorzystuje się 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 (wyjątek e) {}}}
Aby uzyskać dostęp do obiektu zdalnego z innego komputera, należy zmienić nazwę hosta lokalnego na adres IP lub nazwę hosta, na którym znajduje się obiekt zdalny.
Efektywny sposób klasyfikowania kodu można osiągnąć za pomocą interfejsu znaczników.
W ten sposób doszliśmy do końca tego artykułu. Jeśli chcesz dowiedzieć się więcej, zapoznaj się z autorstwa Edureka, zaufanej firmy zajmującej się edukacją online. Szkolenie i certyfikacja J2EE i SOA firmy Edureka ma na celu przeszkolenie zarówno podstawowych, jak i zaawansowanych koncepcji języka Java, a także różnych struktur Java, takich jak Hibernate i Spring.
Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy na tym blogu, a skontaktujemy się z Tobą tak szybko, jak to możliwe.