Klassen in Modulen organisieren
Teil des Abschnitts Objektorientierte Programmierung der JavaScript-Journey von Coddy — Lektion 30 von 56.
Wenn Ihr Projekt wächst, wird es unübersichtlich, alle Klassen in einer Datei zu haben. Stellen Sie sich 10 Klassen in einer Datei vor – es wird schwierig, Code zu finden und zu warten.
Wir haben bereits gelernt, wie man Code mit Modulen organisiert – das Exportieren und Importieren von Funktionen und Variablen. Bei Klassen ist es dieselbe Logik und Syntax! Sie können Klassen aus einer Datei exportieren und in eine andere importieren, genau wie wir es mit Funktionen getan haben.
Lass uns üben, Klassen in Modulen zu organisieren, um unseren Code sauber und überschaubar zu halten.
Zum Beispiel:

Wie es funktioniert:
Datei 1: furniture-base.js (Exportiere die Basisklasse)
export class Furniture {
constructor(material) {
this.material = material;
}
describe() {
return `${this.material} furniture`;
}
}Datei 2: chair.js (Importieren und erweitern)
import { Furniture } from './furniture-base.js';
export class Chair extends Furniture {
constructor(material, legs) {
super(material);
this.legs = legs;
}
sit() {
return "Sitting comfortably";
}
}Datei 3: main.js (Alles zusammen verwenden)
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"Aufgabe
Sie haben ein Elektronikgeschäft-System, das in Modulen organisiert ist. Die Klassen Laptop und Smartphone werden in separaten Dateien erstellt, müssen aber für andere Dateien verfügbar gemacht werden.
Ihre Aufgabe:
- Exportieren Sie die Klassen (verwenden Sie benannte Exporte - nicht default):
- In
laptop.js: Fügen Sieexporthinzu, um die KlasseLaptopverfügbar zu machen - In
smartphone.js: Fügen Sieexporthinzu, um die KlasseSmartphoneverfügbar zu machen
- In
- Importieren Sie die Klassen in
main.js:- Importieren Sie die Klasse
Laptopauslaptop.js - Importieren Sie die Klasse
Smartphoneaussmartphone.js
- Importieren Sie die Klasse
Spickzettel
Klassen können mit derselben Syntax wie Funktionen und Variablen zwischen Modulen exportiert und importiert werden.
Exportieren einer Klasse:
export class Furniture {
constructor(material) {
this.material = material;
}
describe() {
return `${this.material} furniture`;
}
}Importieren und Erweitern einer Klasse:
import { Furniture } from './furniture-base.js';
export class Chair extends Furniture {
constructor(material, legs) {
super(material);
this.legs = legs;
}
sit() {
return "Sitting comfortably";
}
}Importieren mehrerer Klassen:
import { Chair } from './chair.js';
import { Table } from './table.js';
const myChair = new Chair("wood", 4);
const myTable = new Table("glass", "round");Probier es selbst
// TODO: Importiere die Laptop-Klasse aus laptop.js
// TODO: Importiere die Smartphone-Klasse aus smartphone.js
const myLaptop = new Laptop();
const myPhone = new Smartphone();
console.log(myLaptop.type); // Ausgabe: "laptop"
console.log(myPhone.type); // Ausgabe: "smartphone"Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Objektorientierte Programmierung
1Objekte & das this-Schlüsselwort
Kurze Wiederholung: ObjekteMethoden zu Objekten hinzufügenDas this-Schlüsselwort verstehenKonstruktorfunktionenDas new-SchlüsselwortWiederholungs-Challenge7Vererbung & das extends-Schlüsselwort
VererbungDie „ist-ein“-BeziehungDas extends-SchlüsselwortDie super()-MethodeVererben von Eigenschaften & MethodenWiederholungs-Challenge10Polymorphie
Was ist Polymorphie?Geerbte Methoden überschreibenVerwendung von superWiederholungs-Challenge13Komposition vs. Vererbung
Die "hat-ein"- vs. "ist-ein"-BeziehungDie Grenzen tiefer VererbungObjekte zusammenbauen2Code organisieren
Was sind Module?Exportieren mit exportImportieren mit importDefault- vs. benannte Exports5Kapselung & Zugriff
KapselungÖffentliche & private KlassenfelderPrivate MethodenWiederholungs-Herausforderung8OOP-Code strukturieren
Klassen in Modulen organisieren11Projekt: Ein Shape-Renderer
Setup: Shape-Klasse & ExportCircle-Klasse: Vererbung14Bibliotheksverwaltungssystem
Entwurf der BibliothekBuch-Klasse mit Komposition3Klassen & Objekte
Was ist eine Klasse?Instanzen erstellenEigenschaften und MethodenWiederholungs-Challenge6Projekt: Ein einfaches Bankkonto
Klasse BankAccountEinzahlungen und Auszahlungen9Statische Methoden & Eigenschaften
Klassenebene vs. InstanzebeneStatische EigenschaftenStatische HilfsmethodenWiederholungs-Challenge12Getter & Setter
Die Schlüsselwörter get und setBerechnete EigenschaftenValidierung und SeiteneffekteWiederholungs-Challenge15Abschluss-Herausforderungen
Spielfiguren-BuilderE-Commerce ProduktsystemUniversitäts-VerwaltungssystemSmart-Home-Gerätesystem