LINQ框架设计指南
作者 Jonathan Allen译者 张逸 发布于 2008年3月18日 下午9时37分
如今,LINQ的版本发布已经尘埃落定,是时候思考如何使用它了。Keith Farmer甚至谈到了使用LINQ以消除子类。不过,在我们了解这些之前,还是先看看微软的官方指南吧。
根据框架设计指南的精神,微软发布了基于LINQ构建框架的设计指南。LINQ框架设计指南涵盖了诸如API的设计与行为等主题。与很多公司制定的编码指南不同,它并没有包含设计的细枝末节,例如命名模式与格式,除非它们牵涉到公有的API库。
大多数框架设计指南最终都能够找到与FxCOP集成的方式。FxCOP是一个代码分析工具,它被微软和其它公司用来确保编码的一致性。
在概括的介绍之后,该文档介绍了扩展方法(Extension Methods)和泛型委托Func、Action以及Expression。在指南给出的标准警告中,有一个与命名空间冲突无关的指导——它要求在普通方法能够实现的情况下,不要滥用扩展方法。当两个库都公开了相同类型的扩展方法时,会发生方法名称的冲突。一旦发生,只能导入一个库,另一个库则必须使用完整的名称才能被引用。
在扩展LINQ一节中,对于如何命名泛型类型有一个颇有助益的建议。在类型名为S以指代包含元素项的集合时,名为T的泛型类型总是指代集合的元素项(items)。虽然这不是强制性的,但至少有助于阅读内建方法(built-in methods)。
对于性能,指南提出的一个建议是,如果性能牵涉到计算集合的元素总数,则实现ICollection有助于提高性能。当你只能实现IEnumerable时,就必须遍历整个集合才能得到集合的元素总数。
现在,再回头看看Keith Farmer提到的避免子类的方法:
这在.NET编程环境下是有意义的吗?它是否遵循了微软的设计原则呢?或者对它而言,有多少是与这些指南相关的呢?
本文出自 51CTO.COM技术博客 |


shinyzhu
博客统计信息
热门文章
最新评论
友情链接
