MVVM Foundation:RelayCommandとして定義されたときにICommandを返す理由

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

  •  05-10-2019
  •  | 
  •  

質問

Samplemodelプロジェクトを使用しています MVVM Foundation。なぜですか ICommand いつ返された _decrementCommand として宣言されています RelayCommand. 。知っている RelayCommand 継承 ICommand しかし、ただ返すことは明確ではありません RelayCommand?

public ICommand DecrementCommand {
    get { return _decrementCommand ?? (_decrementCommand = new RelayCommand(() => --this.Value)); }
}
RelayCommand _decrementCommand;
役に立ちましたか?

解決

これは、逃げることができる最も具体的ではないタイプを使用するという原則です。具体的または特定のタイプは、発信者が知る必要がないものを暴露する可能性が高く、変更する必要がある可能性が高いため、責任があります(実装の詳細にします)。

この場合、常にicommandを返している場合は、発信者を壊さずに基礎となるコマンドタイプを変更できます。また、発信者は、実際に知っておくべきよりも、あなたの機能についてもっと多くのことを知る必要がないことを期待することもできます。つまり、OOの原則を破る可能性が低くなることを意味します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top