Tổ chức các lớp thành module
Thuộc phần Lập trình hướng đối tượng trong hành trình JavaScript của Coddy. Bài học 30 trên 56.
Khi dự án phát triển, việc để tất cả các lớp trong một tệp sẽ trở nên rối rắm. Hãy tưởng tượng có 10 lớp trong một tệp, bạn sẽ khó tìm và bảo trì code.
Chúng ta đã học cách tổ chức code bằng module: xuất và nhập hàm và biến. Với lớp, logic và cú pháp cũng tương tự! Bạn có thể xuất lớp từ một tệp rồi nhập chúng vào tệp khác, giống như cách chúng ta đã làm với hàm.
Hãy cùng luyện tập cách sắp xếp các lớp vào module để giữ cho code gọn gàng và dễ quản lý.
Ví dụ:

Cách hoạt động:
Tệp 1: furniture-base.js (Xuất lớp cơ sở)
export class Furniture {
constructor(material) {
this.material = material;
}
describe() {
return `${this.material} furniture`;
}
}Tệp 2: chair.js (Nhập và mở rộng)
import { Furniture } from './furniture-base.js';
export class Chair extends Furniture {
constructor(material, legs) {
super(material);
this.legs = legs;
}
sit() {
return "Sitting comfortably";
}
}Tệp 3: main.js (Sử dụng tất cả cùng nhau)
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"Thử thách
Bạn có một hệ thống cửa hàng điện tử được tổ chức thành các module. Các lớp Laptop và Smartphone được tạo trong các tệp riêng, nhưng cần được cung cấp cho các tệp khác.
Nhiệm vụ của bạn:
- Xuất các lớp (dùng named export, không dùng default):
- Trong
laptop.js: Thêmexportđể cung cấp lớpLaptop - Trong
smartphone.js: Thêmexportđể cung cấp lớpSmartphone
- Trong
- Nhập các lớp vào
main.js:- Nhập lớp
Laptoptừlaptop.js - Nhập lớp
Smartphonetừsmartphone.js
- Nhập lớp
Tự làm thử
// TODO: Nhập lớp Laptop từ laptop.js
// TODO: Nhập lớp Smartphone từ smartphone.js
const myLaptop = new Laptop();
const myPhone = new Smartphone();
console.log(myLaptop.type); // Đầu ra: "laptop"
console.log(myPhone.type); // Đầu ra: "smartphone"Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Lập trình hướng đối tượng
1Đối tượng và từ khóa this
Ôn nhanh: đối tượngThêm phương thức vào đối tượngTìm hiểu từ khóa thisHàm khởi tạoTừ khóa newThử thách ôn tập7Kế thừa và từ khóa extends
Kế thừaQuan hệ "là một"Từ khóa extendsPhương thức super()Kế thừa thuộc tính và phương thứcThử thách ôn tập13Kết hợp hay kế thừa
Quan hệ “có một” và “là một”Những hạn chế của kế thừa nhiều tầngXây dựng đối tượng5Đóng gói và quyền truy cập
Đóng góiTrường công khai và trường riêng tưPhương thức riêng tưThử thách ôn tập8Tổ chức code OOP
Tổ chức các lớp thành module11Dự án: Trình hiển thị hình dạng
Thiết lập: lớp Hình dạng và xuấtKế thừa lớp Hình trònGhi đè và phương thức diện tíchBộ đếm hình dạng tĩnh6Dự án: Tài khoản ngân hàng đơn giản
Lớp BankAccountGửi tiền và rút tiềnSố dư dưới dạng thuộc tính riêng tư9Phương thức và thuộc tính tĩnh
Cấp lớp và cấp instanceThuộc tính tĩnhPhương thức tiện ích tĩnhThử thách ôn tậpTự luyện tập: Trình biên dịch JavaScript online