Câu hỏi này phát sinh từ công việc của tôi trên một ứng dụng Grails, nhưng nó áp dụng cho khá nhiều ứng dụng web được phát triển trong các lớp. Dưới đây là ví dụ đơn giản:Các phương thức của lớp dịch vụ có phải là các cá thể hoặc id không?
class OrderService {
// Option 1
def shipOrder(Order order) {
order.status = OrderStatus.SHIPPED
emailService.sendShipmentEmail(order)
// ...
}
// Option 2
def shipOrder(long orderId) {
def order = Order.get(orderId)
order.status = OrderStatus.SHIPPED
emailService.sendShipmentEmail(order)
// ...
}
}
Có bất kỳ tùy chọn nào trong số này được coi là tốt hơn cái kia không?
Như thường lệ với các loại câu hỏi này, điều đó phụ thuộc. Đây không phải là một câu hỏi hay cho SO và có thể sẽ bị đóng. – Gregg
Hm, không nhận ra điều đó. Tôi đã thay đổi câu hỏi một chút để làm cho nó ít phụ thuộc vào ý kiến. –