gpt4 book ai didi

c# - Moq、Ninject、Fluent NHibernate 风格的库?

转载 作者:行者123 更新时间:2023-11-30 14:03:23 28 4
gpt4 key购买 nike

这是一个头脑 Storm 问题。如有任何意见,我们将不胜感激。

最近我观察到一些源代码框架,它们的模式彼此相似。

Moq

mock.Setup(framework => framework.DownloadExists("2.0.0.0"))
.Returns(true)
.AtMostOnce();

Ninject

Bind<IService>().To<RedImpl>().WhenMemberHas<RedAttribute>();

Fluent NHibernate

   HasManyToMany(x => x.Products)
.Cascade.All()
.Table("StoreProduct");

我注意到它们都与某种配置有关。并且比普通的属性设置配置更方便使用。

我可以说我喜欢这种风格,但不知道为什么。

谁能告诉我它有什么优势,这种风格什么时候有用?另外,这种风格有名字吗?这是如何在幕后实现的?如果有关于如何编写 Moq 样式的教程,将不胜感激。

更新

感谢大家的帮助。现在我知道这种风格叫做Fluent Interface,有没有关于如何创建示例 Fluent 界面的教程?

最佳答案

该模式称为 Fluent Interface,在 http://www.martinfowler.com/bliki/FluentInterface.html 中有更详细的描述。

它通常最适合用于任务的全面领域特定语言过度杀伤力的情况。基本上,您在编写的每个方法中返回您正在操作的对象,并尝试使方法名称与意图紧密匹配。

虽然不一定有联系,但您可能希望比较构建器模式以作为构建复杂对象的替代方法,因为一些激励场景是相似的。

关于c# - Moq、Ninject、Fluent NHibernate 风格的库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4293187/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com