Этот вопрос возник из моей работы над приложением Grails, но это применимо практически ко всем веб-приложениям, разработанным в слоях. Вот простой пример:Должны ли методы уровня сервиса ожидать экземпляры или идентификаторы?
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)
// ...
}
}
Является ли какой-либо из этих вариантов более качественным, чем другой?
Как всегда с этими вопросами, это зависит. Это не является хорошим вопросом для SO и, вероятно, будет закрыт. – Gregg
Хм, не понял. Я немного изменил вопрос, чтобы сделать его менее зависимым от мнения. –