logoMột hệ thống khó hiểu thì cũng khó thay đổi
Bài toán mẫu: Tìm tài xế cho đơn hàng

Chúng ta sẽ sử dụng bài toán mẫu này trong nhiều bài viết về kỹ thuật lập trình khác nhau. Nghiệp vụ của bài toán này có thể phát triển thêm trong những chủ đề cụ thể đó, ở đây chỉ là yêu cầu xuất phát.

Bài toán khá đơn giản: Tìm tài xế cho đơn hàng.

Logic của bài toán như sau:

  • Tiếp nhận một đơn hàng qua tham số đầu vào ShipmentID
  • Tìm trong danh sách tài xế một người gần với đơn hàng nhất để tiếp nhận đơn hàng đó.

Phương án sơ bộ

Bài toàn này sẽ có một số thành phần sau:

  1. Một số đối tượng, entities, cần có: Shipment (đơn hàng), Driver (tài xế) cùng với các Repository tương ứng.
  2. Đối tượng tính toán khoảng cách: DistanceCalculator
  3. Cuối cùng, một Use Case bao bọc logic này để trở thành một chức năng được đóng gói cho ứng dụng.

Như vậy, ta sẽ có class diagram sau:

Hình 1: Class diagram thể hiện ý tưởng ban đầu

 

Các mũi tên trong hình 1 đều thể hiện sự phụ thuộc hoặc sử dụng của một class vào các class khác:

  • Các class Shipment, Driver, và Distance Calculator là các class độc lập nhất vì chúng không phụ thuộc vào bất cứ class nào còn lại trong sơ đồ.
  • Class ShipmentAssignmentUseCase là class phụ thuộc nhất, nó đóng vai trò là API cho ứng dụng.

 

Bình luận
Gửi bình luận
Bình luận