Qu'est-ce que l'externalisation en Java ? Interface, fonctionnalités et exemple

Publié: 2021-02-04

Pour répondre à ce qu'est l'externalisation En java , on peut dire que c'est un mécanisme commun qui est implémenté pour personnaliser la sérialisation. Il est utilisé avec l'aspect principal que la sérialisation Java n'est pas si efficace, donc un paramètre de personnalisation externe est utilisé lorsqu'il y a des objets gonflés qui contiennent plusieurs propriétés et attributs.

Table des matières

Que sont la sérialisation et l'externalisation ?

Sérialisation - C'est le mécanisme utilisé pour composer les données d'un objet dans un flux d'octets, le processus est principalement mis en œuvre dans les technologies de type RMI, JMS, JPA. L'autre type consiste en un mécanisme qui inverse la fonction et le processus de sérialisation et appelé désérialisation. La fonction de sérialisation comme son nom l'indique est de sérialiser les objets présents dans java.

Externalisation- Il est défini comme le mécanisme utilisé pour personnaliser le mécanisme de sérialisation. Le bloatware n'est pas rapide et réactif. Cela génère le besoin d'un bon mécanisme suffisamment efficace et réactif pour personnaliser l'ensemble du processus.

Dans la sérialisation, la machine de programmation java répond au processus d'écriture et de lecture d'objets. Il s'agit d'un scénario de cas très utilisé car les programmeurs sont conscients de la nécessité de s'inquiéter du processus de sérialisation. Dans de tels cas, la sérialisation de travail par défaut n'a pas l'intention d'enregistrer des informations d'identification importantes telles que l'ID de connexion et les mots de passe.

Mais, si les programmeurs trouvent le besoin de sécuriser les mêmes informations d'identification, l'externalisation prouve son objectif de donner le contrôle total sur la gestion des données de l'objet de lecture et d'écriture des données lors de la sérialisation.

Checkout : frameworks Java populaires

L'interface externalisable

L'interface est implémentée lorsqu'il est nécessaire de modérer la lecture et l'écriture des objets pendant la sérialisation et la désérialisation. Ainsi, le besoin d'une classe d'objets avec l' interface java.io.externalisable aide les utilisateurs et les programmeurs à implémenter leur code personnalisé sur les états des objets en écrivant dans la méthode writeExternal() et en lisant les objets dans la méthode readExternal().

Pour une meilleure idéation, comprenons à la fois les méthodes

readExternal() fonctionne lorsqu'un objet prend l'entrée. Le contenu est restauré dans le contexte d'origine par les méthodes de data Input en appelant la méthode write Object pour les objets, les chaînes et les tableaux.

writeExternal() fonctionne lorsqu'un objet prend l'entrée et les méthodes de sortie de données enregistrent le contenu en appelant la méthode read Object pour les objets, les chaînes et les tableaux.

Caractéristiques

L'externalisation permet d'implémenter le contrôle logique dans l'application en contournant les méthodes de lecture externe et d'écriture externe.

L'externalisation s'est avérée un moyen efficace pour les programmeurs car ils ont pu créer du code avec leur conscience et leur logique pour éliminer les variables lors de l'externalisation de l'objet java.

Les méthodes d'externalisation donnent un contrôle manuel complet sur l'approche de mise en œuvre, et la sérialisation d'objet et l'héritage peuvent également être impliqués.

Lisez aussi: Questions d'entretien Java

Exemple

// interface

importer java.io.* ;

class Car met en œuvre externalisable {

int age statique ;

nom de chaîne ;

int année ;

Voiture publique()

{

System.out.println("Constructeur par défaut appelé");

}

Voiture(Chaîne n, int y)

{

this.name = n;

cette.année = y;

âge = 10 ;

}

@Passer outre

public void writeExternal (ObjectOutput out)

lève IOException

{

out.writeObject(nom);

out.writeInt(age);

out.writeInt(année);

}

@Passer outre

public void readExternal(ObjectInput in)

lance IOException, ClassNotFoundException

{

nom = (String)in.readObject();

année = in.readInt();

age = in.readInt();

}

@Override public String toString()

{

retour (“Nom : ” + nom + “\n”

+ « Année : » + année + « \n »

+ « Âge : » + âge) ;

}

}

classe publique ExternExample {

public static void main(String[] args)

{

Voiture voiture = voiture neuve(“Shiney”, 1995);

Voiture nouvellevoiture = null ;

// Sérialiser la voiture

essayer {

FileOutputStream pour

= nouveau FileOutputStream("gfg.txt");

ObjectOutputStream donc

= new ObjectOutputStream(fo);

so.writeObject(voiture);

so.flush();

}

attraper (Exception e) {

System.out.println(e);

}

// Désérialiser la voiture

essayer {

FileInputStream fi

= new FileInputStream("gfg.txt");

ObjectInputStream si

= new ObjectInputStream(fi);

nouvellevoiture = (Voiture)si.readObject();

}

attraper (Exception e) {

System.out.println(e);

}

System.out.println("La voiture d'origine est :\n" + voiture);

System.out.println("La nouvelle voiture est :\n" + nouvellevoiture);

}

}

Sortir:

Constructeur par défaut appelé

La voiture d'origine est :

Nom : Shiney

Année : 1995

Âge : 10

La nouvelle voiture est :

Nom : Shiny

Année : 1995

Âge : 10

Cet exemple est un exemple classique pour illustrer que lorsqu'un objet externalisable est recréé, l'instance est déclenchée avec le constructeur public sans argument, cela a tendance à invoquer la méthode readExternal. Ainsi, avec l'aide d'une interface externalisable, il y aurait un contrôle total sur l'analogie de la classe Java.

Ainsi, lors de l'utilisation d'externaliser, il est essentiel et important que tous les états de champ soient dans l'ordre exact où ils ont été écrits.

Lisez également : Idées et sujets de projet Java

Apprenez des cours de développement de logiciels en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.

Conclusion

Ainsi, lorsqu'on nous demande ce qu'est l'externalisation en Java, nous pouvons dire qu'elle est importante en raison de la sérialisation personnalisée qu'elle a à offrir et donne un contrôle total pour personnaliser la sérialisation et également sur l'approche de mise en œuvre. Les méthodes readExternal et writeExternal doivent être écrasées par la classe. Il offre de bien meilleures performances que la sérialisation.

Connectez-vous avec upGrad pour avoir une compréhension meilleure et plus approfondie de Java via le cours du programme Executive PG sur le développement de la pile complète, pour améliorer la courbe d'apprentissage, vous pouvez commencer par Rs 10 000 et accéder aux conférences en ligne.

Que sont les interfaces en Java ?

Une interface est l'un des types de Java qui n'a aucune implémentation et c'est juste un groupe de signature de méthode. Cette interface ne peut pas être créée. La raison derrière ce fait est que ces interfaces ne sont qu'une collection de signatures de méthode. Une fois que nous avons créé une interface, nous ne pouvons pas continuer à y ajouter de nouvelles méthodes. Par exemple, nous ne pouvons pas ajouter une méthode dans l'interface java.Aspect qui nous aidera à modifier le comportement de la classe depuis l'extérieur de la classe. Cela va à l'encontre du principe de la programmation orientée objet. En réalité, les interfaces ne sont rien d'autre qu'une extension d'annotations Java. Nous devrions utiliser des interfaces pour garder notre code léger.

Qu'est-ce que l'externalisation en Java ?

L'externalisation est la capacité d'un objet à rendre son état mutable. L'externalisation est utilisée dans des modèles de conception tels que Singleton, Factory et Prototype pour implémenter le principe d'inversion de dépendance et le principe de ségrégation d'interface. L'externalisation n'est pas une fonctionnalité intégrée de Java, mais il est possible d'ajouter cette fonctionnalité à une classe. L'externalisation est un processus de conversion d'un objet en un flux de caractères en Java. C'est un mécanisme utilisé pour stocker des objets dans des fichiers au format binaire. Il est utilisé pour le stockage de données de caractères dans des fichiers sous la forme d'une séquence d'octets. Les données peuvent être lues lors d'exécutions ultérieures du programme Java.

Quelles sont les fonctionnalités du langage de programmation Java ?

Java est un langage de programmation et une plate-forme informatique lancés pour la première fois par Sun Microsystems en 1995. Plusieurs mises à jour ont été publiées depuis lors, la dernière version étant Java 11. Java était destiné à fonctionner sur n'importe quelle plate-forme pouvant prendre en charge la machine virtuelle Java, d'où il est également une plate-forme de programmation. Il peut s'exécuter dans un environnement avec un simple navigateur, mais il est le plus souvent utilisé avec diverses versions de la machine virtuelle Java (JVM) sous des ensembles de programmes appelés interfaces de programmation d'application ou API.