POO Avancée & Architecture Logicielle avec C#
Decorator pour logging métier
public sealed class LoggingReservationRepository(IReservationRepository inner, ILogger<LoggingReservationRepository> logger)
: IReservationRepository
{
public async Task AddAsync(Reservation reservation, CancellationToken ct)
{
logger.LogInformation("Persisting reservation {ReservationId}", reservation.Id);
await inner.AddAsync(reservation, ct);
}
}
- Le service métier ne change pas.
- Les préoccupations transverses restent composables.