Try using it in your preferred language.

English

  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar
translation

Ceci est un post traduit par IA.

제이온

[Effective Java] Item 4 : Utilisez un constructeur privé pour empêcher l'instanciation

Choisir la langue

  • Français
  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar

Texte résumé par l'IA durumis

  • Lors de la création d'une classe utilitaire qui ne contient que des méthodes et des champs statiques, vous devez créer le constructeur en privé pour empêcher l'instanciation.
  • Cela empêche les appels au constructeur en dehors de la classe et vous permet de contrôler explicitement le constructeur par défaut public généré automatiquement par le compilateur.
  • Un constructeur privé rend l'héritage impossible, ce qui limite l'utilisation intentionnelle des classes utilitaires et améliore la lisibilité du code.

Il est parfois utile d'utiliser une classe qui ne contient que des méthodes et des champs statiques.


Par exemple, java.lang.Math, java.util.Arrays, etc., sont des classes utilitaires qui regroupent des méthodes liées aux opérations mathématiques ou aux tableaux. Ou encore, java.util.Collections, qui regroupe des méthodes statiques d'usine pour créer des objets implémentant une interface spécifique.


Ces classes utilitaires n'ont pas besoin de variables d'instance ou de méthodes, elles peuvent donc être utilisées sans avoir besoin d'un constructeur. Toutefois, si aucun constructeur n'est défini, le compilateur crée automatiquement un constructeur public par défaut. Ainsi, l'utilisateur ne peut pas distinguer un constructeur automatiquement généré.


Pour éviter cela, certaines personnes préfèrent utiliser des classes abstraites. Mais les classes abstraites ne peuvent pas être instanciées. Il suffit de créer une sous-classe et de l'instancier.


public abstract class Person {

    public static void speak(String message) {
        System.out.println(message);
    }
}

public class Student extends Person {

    public Student() {
        super();
    }


Par conséquent, pour empêcher l'instanciation de classes utilitaires, il est nécessaire de rendre le modificateur d'accès du constructeur privé.


public abstract class Person {

    private Person() {
        throw new AssertionError();
    }

    public static void speak(String message) {
        System.out.println(message);
    }


Lorsque le modificateur d'accès du constructeur par défaut est privé, il est inaccessible de l'extérieur de la classe. De plus, il a été bloqué pour empêcher le constructeur par défaut d'être appelé à l'intérieur.


Ce constructeur privé peut être difficile à comprendre pour les utilisateurs. Il est donc conseillé d'ajouter un commentaire. Notez que la restriction du constructeur au niveau privé a également l'effet de rendre impossible l'héritage.


Source

제이온
제이온
제이온
제이온
[Efficace Java] Item 1. Envisager des méthodes d'usine statiques à la place des constructeurs Les méthodes d'usine statiques sont un moyen flexible et efficace de créer des instances à la place des constructeurs. Elles peuvent avoir un nom, renvoyer des instances répondant à des conditions spécifiques et améliorer les performances grâce à la mise

27 avril 2024

[Effective Java] Item 5. Utilisez l'injection de dépendances au lieu de spécifier les ressources Si une classe dépend de ressources externes, il est préférable d'éviter d'utiliser les singletons et les classes utilitaires statiques. L'injection de dépendances peut améliorer la flexibilité, la réutilisabilité et la testabilité de la classe, et l'utili

28 avril 2024

[Effective Java] Item 2. Si vous avez beaucoup de paramètres dans le constructeur, envisagez d'utiliser un générateur Lors de la création d'objets avec un grand nombre de paramètres, l'utilisation du modèle de générateur permet de rendre le code plus propre et plus lisible. Créez un objet générateur avec des paramètres obligatoires, définissez des paramètres optionnels à

27 avril 2024

[Javascript] Structure d'objet (V8) L'objet JavaScript dans le moteur V8 est optimisé comme une structure en fonction de l'état, passant du mode Fast, optimisé comme une structure, au mode Dictionary qui fonctionne comme une table de hachage. Le mode Fast est rapide lorsque les clés et les
곽경직
곽경직
곽경직
곽경직
곽경직

18 mars 2024

[Next.js] Injection d'environnement d'exécution Découvrez comment configurer des variables d'environnement dans Next.js après la compilation. Nous vous présentons comment installer cross-env et modifier les scripts, ce qui est facile à suivre même pour les utilisateurs de Windows. Cela peut être utilis
Sunrabbit
Sunrabbit
Sunrabbit
Sunrabbit

20 mars 2024

Comment Rust empêche les bogues de concurrence Rust est un langage puissant qui résout les défis de la programmation concurrente. Son système de types et son modèle de propriété garantissent la sécurité du transfert et du partage de données entre les threads. Les modèles de mutabilité interne, tels qu
곽경직
곽경직
곽경직
곽경직
곽경직

28 mars 2024

[Histoire d'un développeur SI] 03. Préparation de l'entretien d'embauche dans une entreprise SI L'entretien d'embauche pour les développeurs SI met davantage l'accent sur la capacité de codage que sur les compétences techniques élevées. Ainsi, la compréhension de la structure Spring + mybatis apprise dans les écoles de formation subventionnées par l
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

16 avril 2024

Créer une CLI élégante avec Rust Cet article explique comment implémenter une application CLI en Rust. Nous utiliserons les bibliothèques clap et ratatui pour créer un programme CLI avec des fonctionnalités de connexion et de déconnexion. Nous présentons les aspects clés du développement
곽경직
곽경직
곽경직
곽경직
곽경직

13 mars 2024

Idées de construction de maisons Minecraft Découvrez comment construire de superbes maisons dans Minecraft. Nous vous présentons une variété de conseils, des designs simples à des intérieurs créatifs, en passant par des idées tendance. Créez votre propre maison unique et profitez encore plus du je
hunters
hunters
hunters
hunters
hunters

28 mars 2024