MVVM Fondazione: Perché il ritorno ICommand quando la sua definita come RelayCommand

StackOverflow https://stackoverflow.com/questions/3791701

  •  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;
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top