我一直在寻找一个很好的解决scheme来解决典型的Repository模式(针对特定查询的不断增长的方法列表,请参阅http://ayende.com/blog/3955/repository-是新的单身人士 )。 我非常喜欢使用Command查询的想法,特别是通过使用Specification模式。 然而,我的规范问题是它只涉及到简单select的标准(基本上是where子句),并没有处理查询的其他问题,如连接,分组,子集select或投影等。基本上,所有额外的许多查询必须经过以获得正确的数据集。 (注意:我在命令模式中使用了“命令”这个术语,也称为查询对象。我不是在命令/查询分离中讨论命令,在查询和命令之间有区别(更新,删除,插)) 所以我正在寻找封装整个查询的替代scheme,但是仍然足够灵活,以至于您不只是换取意大利面条仓库来获取命令类的爆炸式增长。 我已经使用了Linqspecs,虽然我发现能够为select标准分配有意义的名称是有价值的,但这还不够。 也许我正在寻求结合了多种方法的混合解决scheme。 我正在寻找其他人可能已经开发的解决这个问题的解决scheme,或者解决不同的问题,但是仍然满足这些要求。 在链接的文章中,Ayendebuild议直接使用nHibernate上下文,但是我觉得这在很大程度上使业务层复杂化,因为它现在还必须包含查询信息。 等待一段时间后,我会提供一个赏金。 所以,请让您的解决scheme赏金值得,好的解释,我会select最好的解决scheme,并upvote亚军。 注:我正在寻找一些基于ORM的东西。 显然不一定是EF或nHibernate,但这些是最常见的,并且最适合。 如果它可以很容易地适应其他ORM的,这将是一个奖金。 Linq兼容也不错。 更新:我真的很惊讶,这里没有很多好的build议。 看起来好像人们完全是CQRS,或者他们完全在版本库里。 我的大多数应用程序都不够复杂,不能保证CQRS(大多数CQRS提倡者都表示不应该使用它)。 更新:这里似乎有点混乱。 我不是在寻找新的数据访问技术,而是在业务和数据之间devise合理的界面。 理想情况下,我正在寻找的是查询对象,规范模式和存储库之间的某种交叉。 正如我上面所说,规范模式只处理where子句方面,而不是查询的其他方面,如连接,子select等。存储库处理整个查询,但一段时间后失控。 查询对象也处理整个查询,但我不想简单地用查询对象的爆炸replace存储库。
我正在检查“Promises / A +”规范,但无法理解以下内容: 关于第1部分术语, 1.1。 "promise”是一个对象或函数,其行为符合此规范的then方法。 1.2。 “thenable”是定义then方法的对象或函数。 那么术语"thenable"和"promise"之间有什么区别? 也在2.3节。 承诺解决程序, 承诺解决程序是一个抽象的操作,将input的承诺和价值作为input,我们表示为[[Resolve]](promise, x) 。 所以我的问题是: 为什么在2个左右括号内表示? 有什么约定吗? 非常感谢你。