MVVM Fondazione: Perché il ritorno ICommand quando la sua definita come RelayCommand
-
05-10-2019 - |
Domanda
io sto usando il progetto SampleModel da MVVM Fondazione .Perché è ICommand
restituito quando _decrementCommand
è dichiarato come RelayCommand
. So che eredita RelayCommand
ICommand
, ma non c'è più chiaro di restituire solo una RelayCommand
?
public ICommand DecrementCommand {
get { return _decrementCommand ?? (_decrementCommand = new RelayCommand(() => --this.Value)); }
}
RelayCommand _decrementCommand;
Soluzione
Questo è il principio di utilizzare il tipo specifico minimo che si può ottenere via con. tipi concreti o specifici sono una passività, perché sono più probabilità di esporre le cose che i chiamanti non hanno bisogno di conoscere e che è più probabile che devono essere cambiati (che li rende un dettaglio di implementazione).
In questo caso, se si torna sempre ICommand, allora è possibile modificare il tipo di comando sottostante senza rompere i chiamanti. Si può anche aspettare che i chiamanti non dovranno sapere di più su ciò che la vostra funzione fa quello che in realtà dovrebbero sapere, il che significa che saranno meno propensi a rompere i principi OO.