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 es una publicación traducida por IA.

제이온

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

Seleccionar idioma

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

Texto resumido por la IA durumis

  • Cuando se crea una clase de utilidad que contiene solo métodos y campos estáticos, el constructor debe hacerse privado para evitar la creación de instancias.
  • Esto evita que se llame al constructor desde fuera de la clase y permite controlar explícitamente el constructor predeterminado público que el compilador genera automáticamente.
  • Un constructor privado hace que la herencia sea imposible, por lo que se puede limitar el uso intencional de la clase de utilidad y mejorar la legibilidad del código.

A veces es útil utilizar una clase que contiene solo métodos estáticos y campos estáticos.


Como ejemplo, podemos usar clases de utilidad como java.lang.Math, java.util.Arrays, que contienen métodos relacionados con operaciones matemáticas o arreglos. O también podemos agregar métodos de factoría estáticos que crean objetos que implementan una interfaz específica como java.util.Collections.


Estas clases de utilidad no requieren un constructor porque no tienen variables de instancia o métodos, pero si no se especifica un constructor, el compilador crea automáticamente un constructor público por defecto. Entonces, el usuario no puede distinguir si el constructor se creó automáticamente.


Para evitar esto, a veces se utiliza una clase abstracta, pero una clase abstracta no puede evitar la instanciación. Esto se debe a que solo se debe crear una subclase para instanciarla.


public abstract class Person {

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

public class Student extends Person {

    public Student() {
        super();
    }


Por lo tanto, para evitar la instanciación de una clase de utilidad, el modificador de acceso del constructor debe establecerse como privado.


public abstract class Person {

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

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


Si el modificador de acceso del constructor por defecto es privado, no se puede acceder desde fuera de la clase. Además, se ha bloqueado para que no se produzca una excepción si el constructor por defecto se llama internamente.


Este constructor privado puede dificultar la comprensión del constructor desde el punto de vista del usuario, por lo que es bueno agregar un comentario. Como referencia, bloquear el constructor como privado también tiene el efecto de hacer que la herencia sea imposible.


Fuente

제이온
제이온
제이온
제이온
[Effective Java] Item 5. Utilice la inyección de dependencia en lugar de especificar recursos Si una clase depende de recursos externos, es mejor no usar singletons ni clases de utilidad estáticas. La inyección de dependencia puede mejorar la flexibilidad, la reutilización y la facilidad de prueba de la clase, y el uso del patrón de método de fábr

28 de abril de 2024

[Effective Java] Item 2. Considere un constructor si el constructor tiene muchos parámetros Al crear objetos con muchos parámetros, el uso del patrón de constructor puede hacer que el código sea más limpio y fácil de leer. Cree un objeto de constructor con parámetros obligatorios y configure los parámetros opcionales con el método setter, luego

27 de abril de 2024

[Effective Java] Artículo 3. Garantiza un singleton con un constructor privado o un tipo de enumeración Presenta tres métodos para implementar el patrón singleton en Java (miembro público static, método de fábrica estático, tipo de enumeración) y explica las ventajas y desventajas de cada método, así como las precauciones que se deben tomar durante la seria

27 de abril de 2024

[Next.js] Inyección de entorno de tiempo de ejecución Descubre cómo configurar variables de entorno en Next.js después del tiempo de compilación. Te mostramos cómo instalar cross-env y modificar los scripts para que los usuarios de Windows también puedan seguirlos fácilmente. Este método se puede utilizar pa
Sunrabbit
Sunrabbit
Sunrabbit
Sunrabbit

20 de marzo de 2024

[Javascript] Estructura de objetos (V8) El objeto JavaScript en el motor V8 se optimiza como una estructura, según el estado, en un modo rápido y se convierte en un modo de diccionario que funciona como un mapa hash. El modo rápido es rápido cuando la clave y el valor son casi fijos, pero cuand
곽경직
곽경직
곽경직
곽경직
곽경직

18 de marzo de 2024

¿Qué es JWT (JSON Web Token)? JSON Web Token (JWT) es un método para transmitir información de forma segura, que se compone de cabecera, carga útil y firma. El servidor utiliza una clave privada para generar la firma y mantener la integridad y seguridad del token. JWT es autónomo y si
Seize the day
Seize the day
Seize the day
Seize the day
Seize the day

4 de marzo de 2024

[No técnico, sobrevivir como desarrollador] 9. Sitios web adecuados para crear un portafolio Se presentan tres tipos de sitios web que son adecuados para que los estudiantes de becas o bootcamps los creen como portafolios de empleo. Puedes desarrollar groupware, ERP, sistemas internos de recursos humanos, etc. que se utilizan comúnmente en las em
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

30 de marzo de 2024

[Sin título, sobreviviendo como desarrollador] 7. Lo que sí y lo que no ayuda al conseguir empleo en la industria Al preparar la búsqueda de empleo como desarrollador, un blog de tecnología no es muy eficiente, pero GitHub es recomendable para la gestión de proyectos y el intercambio de código fuente. Entre los diversos certificados, es mejor preparar el certificado
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

29 de marzo de 2024

[python] Fundamentos de Python 1: Introducción a los Módulos de Python En este artículo, se describe la migración de un programa desarrollado en PHP a Python, incluyendo los conceptos básicos de Python y el uso de módulos. Python es un lenguaje de script que admite el tipeo dinámico y es independiente de la plataforma. Ofrec
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

27 de marzo de 2024