MVVM Foundation:RelayCommandとして定義されたときにICommandを返す理由
-
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の原則を破る可能性が低くなることを意味します。
所属していません StackOverflow