Docs học tập
Backend nền tảng

I7 · Thiết kế LLD: Bãi đỗ xe (Parking Lot)

Các class: ParkingLot, Floor, Slot, Vehicle, Ticket, Payment, Gate.

I7 · Junior

Mô hình hóa đúng đời thực: bãi xe có tầng, tầng có chỗ đỗ, xe vào lấy vé, ra thì trả tiền.

Cốt lõi

  • Các class: ParkingLot, Floor, Slot, Vehicle, Ticket, Payment, Gate.
  • Quan hệ: ParkingLot có List<Floor>, Floor có List<Slot>.
  • Luồng: Vehicle → Ticket → Payment.

Đánh đổi

Bài tập kinh điển để luyện mô hình hóa quan hệ OOP; nên dùng enum cho loại xe/chỗ, Strategy cho cách tính phí.

Trong thực tế

Hệ thống Mall / Airport; bãi đỗ xe của Uber.

Bug thường gặp

Kiểm tra slot trống rồi mới gán (check-then-act) mà không khóa → hai xe được gán cùng một chỗ.

Tự hỏi lại

Hai xe cùng chiếm một slot đồng thời → xử lý concurrency thế nào?

On this page