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:
- 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.
- Đối tượng tính toán khoảng cách: DistanceCalculator
- 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:

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.