【问题标题】:MVVM Foundation: Why return ICommand when its defined as RelayCommandMVVM Foundation:为什么在定义为 RelayCommand 时返回 ICommand
【发布时间】:2010-09-25 07:25:41
【问题描述】:

我正在使用来自 MVVM Foundation 的 SampleModel 项目。为什么当 _decrementCommand 声明为 RelayCommand 时会返回 ICommand。我知道RelayCommand 继承ICommand,但返回RelayCommand 会不会更清楚?

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

【问题讨论】:

    标签: c# mvvm mvvm-foundation


    【解决方案1】:

    这是使用最不具体的类型的原则,你可以逃脱。具体或特定类型是一种负担,因为它们更有可能暴露调用者不需要知道的东西,并且它们更有可能需要更改(使它们成为实现细节)。

    在这种情况下,如果您总是返回 ICommand,那么您可以在不中断调用者的情况下更改底层命令类型。您还可以期望调用者不必比他们实际知道的更多地了解您的函数所做的事情,这意味着他们不太可能违反 OO 原则。

    【讨论】:

      猜你喜欢
      • 2012-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      • 2014-10-24
      • 2021-12-11
      • 2019-08-21
      • 1970-01-01
      相关资源
      最近更新 更多