Sto leggendo Domain-Driven Design al momento e sto cercando di capire cosa dovrebbe andare nei servizi e cosa dovrebbe andare nei modelli di dominio.
Dire che c'è un'applicazione in cui puoi prenotare posti per concerti. Quindi dopo questo hai un certo tempo per pagare il biglietti, dopodiché la prenotazione non è valida.
Il metodo seguente per prenotare i posti è in un servizio. Se un utente non ha ancora effettuato una prenotazione per un concerto o la prenotazione non è valida, ne viene creato uno nuovo, altrimenti la prenotazione dell'utente viene aggiornata. La logica principale del metodo è in una dichiarazione if se non altro. Questo potrebbe essere spostato nel modello di dominio Concert
passando la vecchia prenotazione e restituendo la nuova prenotazione, quindi il modello di dominio Concert
creerebbe le proprie prenotazioni. È un approccio migliore per spostare la creazione di SeatReservation
nel modello di dominio?
private SeatReservation reserveSeats(int concertId,
int numSeatsReserved,
int userId) throws DataAccessException{
SeatReservation seatReservation = ticketDao.getReservation(userId, convertId);
long numSeatsRemaining = ticketDao.getNumRemainingSeats(concertId);
if(seatReservation == null || !seatReservation.isValid()){
if(numSeatsReserved <= numSeatsRemaining) {
seatReservation = new SeatReservation(userId, concertId, numSeatsReserved);
ticketDao.saveSeatReservation(seatReservation);
}
} else if(seatReservation.isValid()
&& numSeatsReserved - ticketReserve.getNumSeatsReserved()
<= numTicketsRemaining){
seatReservation.setNumSeatsReserved(numSeatsReserved);
ticketDao.editReservation(seatReservation);
}
return seatReservation;
}