Question

J'utilise le projet SampleModel de MVVM Fondation .Pourquoi est ICommand retourné lorsque _decrementCommand est déclarée comme RelayCommand. Je sais hérite RelayCommand ICommand mais n'est plus clair pour revenir juste un RelayCommand?

public ICommand DecrementCommand {
    get { return _decrementCommand ?? (_decrementCommand = new RelayCommand(() => --this.Value)); }
}
RelayCommand _decrementCommand;
Était-ce utile?

La solution

Ceci est le principe d'utiliser le moins type spécifique, vous pouvez vous en sortir avec. types de béton ou spécifiques sont une responsabilité parce qu'ils sont plus susceptibles d'exposer les choses que les appelants ne ont pas besoin de connaître et ils sont plus susceptibles d'avoir besoin d'être changé (ce qui les rend un détail de mise en œuvre).

Dans ce cas, si vous revenez toujours ICommand, vous pouvez modifier le type de commande sous-jacente sans casser les appelants. Vous pouvez également vous attendre à ce que les appelants ne doivent en savoir plus sur ce que votre fonction ne qu'ils devraient réellement savoir, ce qui signifie qu'ils seront moins susceptibles de briser les principes OO.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top