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

Questo è un post tradotto da IA.

제이온

[Effective Java] Item 4. Utilizzare un costruttore privato per impedire l'istanziamento

Seleziona la lingua

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

Testo riassunto dall'intelligenza artificiale durumis

  • Quando si crea una classe di utilità che contiene solo metodi e campi statici, è necessario rendere privato il costruttore per impedire l'istanziamento.
  • Ciò impedisce l'invocazione del costruttore dall'esterno della classe e consente un controllo esplicito del costruttore pubblico predefinito generato dal compilatore.
  • Un costruttore privato rende la classe non ereditabile, limitando l'utilizzo intenzionale della classe di utilità e migliorando la leggibilità del codice.

A volte è utile usare una classe che contiene solo metodi statici e campi statici.


Ad esempio, puoi usare classi di utilità come java.lang.Math, java.util.Arrays che raccolgono metodi relativi a operazioni matematiche o matrici. Oppure, puoi raggruppare metodi statici di fabbrica che creano oggetti che implementano una particolare interfaccia, come java.util.Collections.


Queste classi di utilità non richiedono alcun costruttore perché possono essere utilizzate senza variabili o metodi di istanza. Tuttavia, se non si specifica un costruttore, il compilatore crea automaticamente un costruttore pubblico predefinito. Pertanto, l'utente non può distinguere se questo costruttore è stato generato automaticamente.


Per evitarlo, a volte viene creata una classe astratta, ma una classe astratta non può essere istanziata. Puoi semplicemente creare una sottoclasse e istanziarla.


public abstract class Person {

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

public class Student extends Person {

    public Student() {
        super();
    }


Pertanto, per impedire l'istanza di classi di utilità, è necessario impostare il modificatore di accesso del costruttore su privato.


public abstract class Person {

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

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


Come sopra, se il modificatore di accesso del costruttore predefinito è privato, non è possibile accedervi dall'esterno della classe. Inoltre, è stato impedito che il costruttore predefinito venisse chiamato internamente causando un'eccezione.


Questo costruttore privato può essere difficile da capire per gli utenti, quindi è una buona idea aggiungere un commento. Per inciso, bloccare il costruttore su privato ha anche l'effetto di rendere impossibile l'ereditarietà.


Fonte

제이온
제이온
제이온
제이온
[Effective Java] Item 1. Consider static factory methods instead of constructors I metodi di fabbrica statici sono un modo flessibile ed efficiente per creare istanze invece di costruttori. Possono avere un nome, restituire istanze che soddisfano determinate condizioni e migliorare le prestazioni tramite il caching. A differenza del m

27 aprile 2024

[Effettivi Java] Elemento 5. Non dichiarare risorse, utilizzare l'iniezione di dipendenze Se una classe dipende da risorse esterne, è meglio non utilizzare classi di utilità statiche o singleton. L'iniezione di dipendenze può migliorare la flessibilità, la riusabilità e la facilità di test della classe, e l'utilizzo del pattern di metodo di fa

28 aprile 2024

[Effective Java] Item 2. Se hai molti parametri nel costruttore, considera di usare un builder Quando si crea un oggetto con molti parametri, l'utilizzo del pattern builder può rendere il codice più pulito e leggibile. Si crea un oggetto builder con i parametri obbligatori, si impostano i parametri facoltativi utilizzando i metodi setter e infine s

27 aprile 2024

[Non-major, sopravvivere come sviluppatore] 7. Cosa aiuta e cosa no quando si cerca un lavoro nel settore Quando ci si prepara a cercare lavoro come sviluppatore, il blog tecnologico è inefficiente, mentre GitHub è consigliato per la gestione dei progetti e la condivisione del codice sorgente. Tra le varie certificazioni, è consigliabile preparare l'esame per
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

29 marzo 2024

Come Rust impedisce i bug di concorrenza Rust è un linguaggio potente che affronta le sfide della programmazione concorrente. Il suo sistema di tipi e il modello di proprietà garantiscono la sicurezza nella condivisione e nel trasferimento di dati tra thread. Tramite pattern di mutabilità intern
곽경직
곽경직
곽경직
곽경직
곽경직

28 marzo 2024

[Javascript] Struttura dell'oggetto (V8) L'oggetto JavaScript in V8 Engine viene ottimizzato come una struttura in base allo stato e convertito in modalità Fast e modalità Dictionary che funziona come una hashmap. La modalità Fast è rapida con chiave e valore in un formato quasi fisso, ma se vie
곽경직
곽경직
곽경직
곽경직
곽경직

18 marzo 2024

[Non specialisti, sopravvivere come sviluppatori] 14. Riepilogo dei contenuti del colloquio tecnico per sviluppatori junior Questa è una guida alla preparazione ai colloqui tecnici per sviluppatori junior. Copre argomenti come la memoria principale, le strutture dati, RDBMS e NoSQL, programmazione procedurale e orientata agli oggetti, override e overload, algoritmi di sostituz
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

3 aprile 2024

Modellazione concettuale dei dati La modellazione concettuale dei dati è il processo di separazione delle entità e di rappresentazione delle relazioni tra le entità tramite un ERD. Un'entità è un'unità di informazioni indipendente, mentre gli attributi sono i dati detenuti dall'entità. Gl
제이의 블로그
제이의 블로그
제이의 블로그
제이의 블로그

8 aprile 2024

Raccolta di idee per costruire case in Minecraft Scopri come costruire case fantastiche in Minecraft. Ti presentiamo una varietà di suggerimenti, da design semplici a interni creativi e idee alla moda. Crea la tua casa unica e divertiti ancora di più con il gioco.
hunters
hunters
hunters
hunters
hunters

28 marzo 2024