Emi*_*din 6 c# command-query-separation async-await
那么,如果我写一个异步命令,那是否会不可避免地违反CQS原则?
在考虑你想知道什么(查询)或做(命令)的水平上,然后Task<T>给你数据,因此对于查询Task是正确的,因此对于命令是正确的.("return void"是某些语言表达"不返回数据"的语言特定方式).
在您正在考虑管理异步操作的机制的级别下,您总是希望获得有关异步操作状态的信息,因此总是需要某种任务对象.这不是考虑命令查询分离的级别.
相比之下,如果.NET方法调用COM方法,它将调用代码,该代码始终返回指示成功或失败的值.这只是该特定技术中异常处理如何发生的实现细节.根据您的工作水平,考虑这一点至关重要或无关紧要.Task是基于任务的异步编程如何工作的实现细节.根据您的工作水平,考虑这一点至关重要或无关紧要.
您需要考虑"这是一个命令还是一个查询"的级别,Task是一个关于如何获得的实现细节void.
| 归档时间: |
|
| 查看次数: |
320 次 |
| 最近记录: |