To pytanie powstało podczas mojej pracy nad aplikacją Grails, ale dotyczy prawie każdej aplikacji internetowej tworzonej w warstwach. Oto prosty przykład:Czy metody warstwy usług powinny oczekiwać wystąpień lub identyfikatorów?
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)
// ...
}
}
Czy którakolwiek z tych opcji została udokumentowana jako lepsza od drugiej?
To zależy od tego rodzaju pytań. To nie jest dobre pytanie dla SO i prawdopodobnie zostanie zamknięte. – Gregg
Hm, nie zdawałem sobie z tego sprawy. Zmieniłem trochę pytanie, aby było mniej zależne od opinii. –