jQuery的哪些内在属性及其满足的要求使它成为构建器模式和方法链的良好候选者?
问另一种方式,C#/ VB .NET核心库是否可以使用类似于jQuery的更多方法链进行重写,还是有一些继承,限制因素?
很多内容都归结为JavaScript是动态的,而不是类似VB / C#的类型,或者jQuery主要是对DOM操作感兴趣的东西?
答案 0 :(得分:2)
你可以在C#中链接方法就好了。例如,这一直是用Linq完成的。
要了解C#中的方法链实现,请参阅
有时也称为fluent interface。
基本思想是参与链的每个方法都返回this
,因此可以通过引用前一个调用的返回值来调用该类的其他方法。
没有任何技术可以防止核心库被重写以更广泛地使用方法链。但实际上,重写核心库会破坏所有现有的.NET应用程序。
当然,人们可以编写一个库,为核心库中的东西提供流畅的界面。我想到的一件事是在System.IO中处理Streams和Readers。
答案 1 :(得分:1)
没有几个C#库用类似的#34;链接"编写。它通常称为Fluent API。一个例子是Fluent NHibernate,但还有更多,因为它只是构建代码的一种方式。它不是动态与静态语言的限制