September 26, 2024
¿Cuándo y por qué usar static en tus clases?
Imagina que estás trabajando en un proyecto y de repente te das cuenta de que algunas funciones o propiedades no dependen de los datos específicos de una instancia de una clase. En lugar de crear múltiples instancias innecesarias, podrías optimizar tu código usando la palabra clave static. Este pequeño cambio puede hacer que tus clases sean más eficientes y fáciles de mantener.
Vamos a ver en qué situaciones puede ser útil esta característica:
1. Funciones Utilitarias o Helpers
Cuando tienes funciones que no dependen de una instancia específica de una clase, hacerlas estáticas tiene mucho sentido. Por ejemplo, si solo necesitas sumar dos números o validar un dato, puedes definir estos métodos como static para evitar crear instancias innecesarias.
Ejemplo:
export class MathUtils {
static add(a: number, b: number): number {
return a + b;
}
}
2. Constantes o Configuraciones Globales
Otra situación en la que static es útil es cuando trabajas con valores que no cambian y que serán los mismos para todas las instancias de la clase. Por ejemplo, la versión de una aplicación o una configuración global.
Ejemplo:
export class AppConfig {
static readonly APP_VERSION = "1.0.0";
}
console.log(AppConfig.APP_VERSION); // "1.0.0"3. Métodos de Fábrica (Factory Methods)
Los métodos estáticos también son ideales para controlar cómo se crean las instancias de una clase. Esto es útil cuando quieres asegurarte de que las instancias se crean de una manera particular, siguiendo el patrón de diseño de Factory.
Ejemplo:
class Car {
static createDefaultCar(): Car {
return new Car("default", 4);
}
4. Gestión de Contadores o Seguimiento de Estado Global
¿Necesitas hacer un seguimiento global de algo? Las propiedades estáticas pueden ayudarte a mantener un contador compartido entre todas las instancias de una clase. De esta forma, no necesitas preocuparte por llevar la cuenta en cada instancia por separado.
Ejemplo:
class Counter {
static count = 0;
constructor() {
Counter.count++;
}
}
new Counter5. Singleton Pattern
El patrón Singleton asegura que solo exista una única instancia de una clase, lo que puede ser muy útil cuando trabajas con servicios o recursos que deben ser compartidos en toda tu aplicación.
Ejemplo:
class Singleton {
private static instance: Singleton;
private constructor() {}
static getInstance()
Cuándo NO usar static
- Si el método o propiedad depende de datos únicos de cada instancia.
- Si tu clase está diseñada para ser instanciada con frecuencia y cada instancia necesita tener su propio estado independiente.
Conclusión:
La palabra clave static es poderosa cuando se usa correctamente. Permite evitar la creación de instancias innecesarias y optimizar el uso de funciones y propiedades que son globales o compartidas entre todas las instancias de una clase. Sin embargo, es importante no abusar de ella; si un método o propiedad depende de los datos específicos de una instancia, static no es la mejor opción. Utilízala con sabiduría para mejorar la eficiencia y claridad de tu código.

Written by Pol Valle
I am particularly drawn to developing applications that are not only functional but also visually appealing and easy to use. I accomplish this by implementing SOLID principles and clean architecture, and applying testing to ensure quality.