命令模式用于返回数据

Luk*_*asz 6 c# design-patterns solid-principles

我正在研究一个应用程序并试图遵循Robert C. Martin的SOLID原则.我正在使用命令模式,我想知道实现.在C#中的清洁代码和敏捷原则,模式和实践的所有示例中,他的命令对象永远不会返回任何内容.他的命令界面是;

public interface Command
{
  void Execute();
}
Run Code Online (Sandbox Code Playgroud)

所有的例子都是"AddEmployee","DelEmployee","EditEmployee"等.我是否会有一个"GetAllEmployees"的命令,或者我是否会为此特定目的创建一些其他特殊的"Interactor"?我正在考虑处理这个特定情况的一种方法是让两个接口像上面那样非泛型和像这样的通用接口;

public interface Command<T>
{
  T Execute();
}
Run Code Online (Sandbox Code Playgroud)

我要问的是,这是这种模式的可接受的实现还是我们有另一种方式从应用程序访问数据?

Ode*_*ded 5

命令是改变状态(更新,删除或添加)的东西.

获取数据(而不是更改数据)时,您将使用查询.

另请参阅CQS和相关的CQRS.

  • 我认为在这里引入CQRS会引起很多困惑. (3认同)