Devo iniettare una classe di mappatura in un controller MVC ASP.NET

1

Ho una discussione con un collega.

Pensa che dovremmo iniettare una classe di mappatura (per mappare il domainmodel su un viewmodel) in un controller. Pensa che ora possiamo testare la classe di mappatura (che è una classe di automapper per alcune proprietà) e possiamo iniettare un'altra implementazione quando ne abbiamo bisogno.

La mia opinione è che la logica per questo tipo di mappatura non verrà modificata con un'altra implementazione, né deve essere testata separatamente, perché non viene riutilizzata.

Pensa anche che sia più "elegante" ed è meglio perché è disaccoppiato.

Penso che non dovresti disaccoppiare il tuo codice quando è usato solo in un posto. Secondo me non è male avere un codice che è legato a una sola classe, in quella classe, e che esiste una cosa come "over-disaccoppiamento".

Apprezzerei la tua opinione su questo.

    
posta Michel 02.11.2016 - 15:22
fonte

1 risposta

2

No, non hai bisogno di un'iniezione di dipendenza per questo. MVC è già adeguatamente disaccoppiato e l'hai disaccoppiato ulteriormente utilizzando ViewModel e Automapper.

Se è necessario modificare l'implementazione, è sufficiente cambiarla in ViewModel o in Automapper. Se è necessario condividere un ViewModel con domini diversi, fornire un metodo aggiuntivo sul ViewModel che restituisce un oggetto diverso o regolare AutoMapper di conseguenza.

Lo scopo dell'iniezione di dipendenza è iniettare un'implementazione di un determinato comportamento, e non è questo il motivo. È semplicemente un'impalcatura; aggiungere un'iniezione di dipendenza aumenterebbe semplicemente la complessità senza alcun vantaggio visibile.

    
risposta data 02.11.2016 - 15:34
fonte

Leggi altre domande sui tag