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?