我最近在其他地方表达了我对此的看法*,但我认为它值得进一步分析,所以我将其作为自己的问题发布。
假设我需要在我的程序中创建和传递一个容器。至少在现阶段,我可能对一种容器与另一种容器没有强烈的看法,但我确实选择了一个;为了论证起见,假设我将使用 List<>。
问题是:编写我的方法来接受和返回高级接口(interface)(例如 C# 的 IEnumerable)会更好吗?或者我应该编写方法来获取和传递我选择的特定容器类。
我应该寻找哪些因素和标准来决定?哪种程序可以从其中一种或另一种中受益?计算机语言会影响您的决定吗?表现?程序规模?个人风格?
(这还重要吗?)
**(作业:找到它。但请在寻找我自己的答案之前在这里发布您的答案,以免偏见您。)*
最佳答案
您的方法应始终接受执行其功能所需的最不具体的类型。如果您的方法需要枚举,请接受 IEnumerable
.如果需要做IList<>
- 特定的东西,根据定义你必须给它一个 IList<>
.
关于language-agnostic - 我应该使用像 IEnumerable 这样的接口(interface),还是像 List<> 这样的具体类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/613652/