Chuck's Academy

JavaScript Intermedio

Clases y Orientación a Objetos en Profundidad

JavaScript permite trabajar con clases para implementar el paradigma de programación orientado a objetos (OOP). En este capítulo, profundizaremos en el uso de clases, propiedades, métodos y patrones de diseño en JavaScript.

conceptos en OOPconceptos en OOP

Clases en JavaScript

Las clases en JavaScript son una forma más clara de definir objetos y métodos. La palabra clave class nos permite definir una estructura de clase, y el método constructor inicializa sus propiedades.

javascript
"Aquí, definimos una clase 'Person' con propiedades 'name' y 'age', y un método 'greet' que presenta al objeto."

Métodos Estáticos

Los métodos estáticos pertenecen a la clase en sí, no a sus instancias, y se definen con la palabra clave static.

javascript
"En este ejemplo, 'add' es un método estático de 'MathUtil' y se llama directamente desde la clase, sin instanciarla."

Propiedades y Métodos Privados

En JavaScript, las propiedades y métodos pueden declararse privados usando el prefijo #, limitando el acceso solo al interior de la clase.

javascript
"Aquí, 'balance' es una propiedad privada, accesible solo dentro de 'BankAccount'. No puede ser modificada directamente desde fuera de la clase."

Herencia de Clases

La herencia permite que una clase extienda otra, reutilizando propiedades y métodos. La palabra clave extends crea una clase hija basada en una clase padre.

javascript
"En este ejemplo, 'Employee' hereda de 'Person', agregando la propiedad 'role' y un método 'work' específico de 'Employee'."

Sobrecarga de Métodos

JavaScript permite redefinir métodos en una clase hija, sobrescribiendo la implementación del método en la clase padre.

javascript
"Aquí, 'Dog' sobrescribe el método 'speak' de 'Animal' para emitir 'Bark' en lugar del sonido genérico."

Polimorfismo

El polimorfismo permite tratar diferentes objetos que comparten un método en común de manera similar, permitiendo que cada objeto ejecute su propia versión del método.

javascript
"En este caso, tratamos a 'Dog' y 'Cat' como 'Animal', pero cada uno ejecuta su propia implementación del método 'speak'."

Patrones de Diseño en Clases

Singleton

El patrón Singleton garantiza que solo exista una instancia de una clase.

javascript
"Aquí, 'Database' implementa el patrón Singleton, asegurando que 'db1' y 'db2' sean la misma instancia."

Factory

El patrón Factory proporciona una forma de crear instancias de clases sin especificar la clase exacta que se va a crear.

javascript
"En este ejemplo, 'CarFactory' crea instancias de 'Car' sin exponer el proceso de creación."

Conclusión

Las clases y la orientación a objetos en JavaScript permiten una estructura de código más clara y organizada, facilitando la reutilización y la implementación de patrones avanzados. Con propiedades privadas, herencia y patrones de diseño, puedes construir aplicaciones robustas y escalables.


Pregúntame lo que sea