Organizar clases en módulos
Parte de la sección Programación Orientada a Objetos del Journey de JavaScript de Coddy. Lección 30 de 56.
Cuando tu proyecto crece, tener todas las clases en un solo archivo se vuelve desordenado. Imagina 10 clases en un solo archivo: se vuelve difícil encontrar y mantener el código.
Ya aprendimos cómo organizar el código con módulos: exportando e importando funciones y variables. ¡Con las clases, es la misma lógica y sintaxis! Puedes exportar clases desde un archivo e importarlas en otro, tal como lo hicimos con las funciones.
Practiquemos la organización de clases en módulos para mantener nuestro código limpio y manejable.
Por ejemplo:

Cómo funciona:
Archivo 1: furniture-base.js (Exportar la clase base)
export class Furniture {
constructor(material) {
this.material = material;
}
describe() {
return `${this.material} furniture`;
}
}Archivo 2: chair.js (Importar y extender)
import { Furniture } from './furniture-base.js';
export class Chair extends Furniture {
constructor(material, legs) {
super(material);
this.legs = legs;
}
sit() {
return "Sitting comfortably";
}
}Archivo 3: main.js (Usa todo junto)
import { Chair } from './chair.js';
import { Table } from './table.js';
const myChair = new Chair("wood", 4);
const myTable = new Table("glass", "round");
console.log(myChair.describe()); // "wood furniture"
console.log(myTable.describe()); // "glass furniture"Desafío
Tienes un sistema de tienda de electrónica organizado en módulos. Las clases Laptop y Smartphone se crean en archivos separados pero deben estar disponibles para otros archivos.
Tu tarea:
- Exporta las clases (usa exportaciones con nombre - no por defecto):
- En
laptop.js: Agregaexportpara que la claseLaptopesté disponible - En
smartphone.js: Agregaexportpara que la claseSmartphoneesté disponible
- En
- Importa las clases en
main.js:- Importa la clase
Laptopdesdelaptop.js - Importa la clase
Smartphonedesdesmartphone.js
- Importa la clase
Pruébalo tú mismo
// TODO: Importar la clase Laptop desde laptop.js
// TODO: Importar la clase Smartphone desde smartphone.js
const myLaptop = new Laptop();
const myPhone = new Smartphone();
console.log(myLaptop.type); // Salida: "laptop"
console.log(myPhone.type); // Salida: "smartphone"Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Programación Orientada a Objetos
1Objetos y la palabra clave this
Repaso rápido: ObjetosAgregar métodos a los objetosEntendiendo la palabra clave thisFunciones constructorasLa palabra clave newDesafío de repaso7Herencia y la palabra clave extends
HerenciaLa relación "es-un"La palabra clave extendsEl método super()Heredar propiedades y métodosDesafío de repaso13Composición vs. Herencia
La relación "tiene-un" vs. "es-un"Los límites de la herencia profundaConstrucción de objetos2Organización del código
¿Qué son los módulos?Exportar con exportImportar con importExportaciones por defecto vs. nombradas5Encapsulamiento y Acceso
EncapsulamientoCampos de clase públicos y privadosMétodos privadosDesafío de repaso8Organización del código OOP
Organizar clases en módulos11Proyecto: Un renderizador de figuras
Configuración: Clase Figura y exportaciónHerencia de la clase CírculoSobrescritura y método de áreaContador de figuras estático14Sistema de Gestión de Biblioteca
Diseño de la BibliotecaClase Libro con ComposiciónValidación del Autor del Libro9Métodos y propiedades estáticos
Nivel de clase vs. Nivel de instanciaPropiedades estáticasMétodos de utilidad estáticosDesafío de repasoPractica por tu cuenta: Compilador de JavaScript online