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

Esta é uma postagem traduzida por IA.

제이온

[Effective Java] Item 4. Use a private constructor to prevent instantiation

  • Idioma de escrita: Coreana
  • País de referência: Todos os países country-flag

Selecionar idioma

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

Texto resumido pela IA durumis

  • When creating a utility class that contains only static methods and fields, you should make the constructor private to prevent instantiation.
  • This prevents the constructor from being called from outside the class, and allows you to explicitly control the public default constructor generated by the compiler.
  • A private constructor makes inheritance impossible, restricting the intentional use of utility classes and improving code readability.

Às vezes, usar uma classe que contém apenas métodos estáticos e campos estáticos pode ser útil.


Um exemplo típico é usar classes de utilitário, como java.lang.Math, java.util.Arrays, que contêm métodos relacionados a operações matemáticas ou arrays. Ou, pode agrupar métodos estáticos de fábrica que criam objetos que implementam uma determinada interface, como java.util.Collections.


Essas classes de utilitário podem ser usadas sem variáveis ​​de instância ou métodos, então não requerem um construtor. No entanto, se um construtor não for declarado, o compilador cria automaticamente um construtor público padrão. Portanto, o usuário não consegue diferenciar se esse construtor foi criado automaticamente.


Para evitar isso, algumas pessoas fazem a classe ser abstrata, mas a classe abstrata não pode ser instanciada. Isso porque você pode apenas criar uma subclasse e instanciá-la.


public abstract class Person {

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

public class Student extends Person {

    public Student() {
        super();
    }


Portanto, para impedir a instanciação da classe de utilitário, o modificador de acesso do construtor deve ser definido como privado.


public abstract class Person {

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

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


Se o modificador de acesso do construtor padrão for privado, como mostrado acima, ele não será acessível de fora da classe. Além disso, ele foi bloqueado para que uma exceção fosse lançada quando o construtor padrão fosse chamado internamente.


Um construtor privado pode ser difícil de entender para quem usa, então adicionar um comentário pode ser uma boa ideia. Observe que tornar o construtor privado torna a herança impossível.


Fonte

제이온
제이온
제이온
제이온
[Effective Java] Item 1: Considere métodos de fábrica estáticos em vez de construtores Os métodos de fábrica estáticos são uma maneira flexível e eficiente de criar instâncias em vez de construtores. Eles podem ter um nome, retornar instâncias que atendem a condições específicas e melhorar o desempenho por meio do cache. Ao contrário do pad

27 de abril de 2024

[Effective Java] Item 5: Use dependency injection instead of explicitly specifying resources Se uma classe depender de recursos externos, é melhor não usar singletons e classes de utilitário estáticas. A injeção de dependência pode ser usada para melhorar a flexibilidade, reusabilidade e facilidade de teste da classe, e o padrão de fábrica pode s

28 de abril de 2024

[Effective Java] Item 3. Garanta o Singleton com um construtor privado ou um tipo de enumeração Este artigo apresenta três métodos para implementar o padrão Singleton em Java (membro estático público, método de fábrica estático e tipo de enumeração), e discute os prós e contras de cada método, bem como as precauções a serem tomadas ao serializar. El

27 de abril de 2024

[Javascript] Estrutura do Objeto (V8) O Objeto JavaScript no motor V8 é otimizado como uma estrutura dependendo do estado, alternando entre o modo Rápido e o modo Dicionário, que funciona como um mapa hash. O modo Rápido é rápido quando as chaves e valores são quase fixos, mas quando uma nova
곽경직
곽경직
곽경직
곽경직
곽경직

18 de março de 2024

Como a Rust previne bugs de simultaneidade Rust é uma linguagem poderosa que resolve os desafios da programação concorrente. Seu sistema de tipos e modelo de propriedade garantem a transferência e o compartilhamento de dados seguros entre threads. Padrões de mutabilidade interna, como Mutex, Chann
곽경직
곽경직
곽경직
곽경직
곽경직

28 de março de 2024

[Não-técnico, sobrevivendo como desenvolvedor] 7. O que ajuda e o que não ajuda na busca por um novo emprego Ao se preparar para uma vaga de desenvolvedor, um blog de tecnologia é ineficaz, mas o GitHub é recomendado para gerenciar projetos e compartilhar código-fonte. Entre as várias certificações, é recomendável preparar a certificação de processamento de dado
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

29 de março de 2024

Ideias de construção de casas no Minecraft Descubra como construir casas incríveis no Minecraft. Apresentamos dicas variadas, desde designs simples até interiores criativos e ideias modernas. Crie sua própria casa única e divirta-se ainda mais no jogo.
hunters
hunters
hunters
hunters
hunters

28 de março de 2024

Ideias para melhorar o programa de negociação automatizada Este artigo apresenta ideias para melhorar as funcionalidades do programa de negociação automatizada de Grid Trading, sugerindo a inclusão de gerenciamento de grandes eventos, lógica de gerenciamento de investimentos, funcionalidade de posição curta, entr
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마

21 de abril de 2024

Guia de Introdução ao Rust Guia para iniciantes em Rust: da instalação do compilador à compreensão de conceitos básicos. Aborda como utilizar as tecnologias e bibliotecas mais recentes através de documentação oficial e cursos. Explica passo a passo tópicos essenciais como variáveis
곽경직
곽경직
곽경직
곽경직
곽경직

30 de março de 2024