2009-11-22 57 views

回答

21

这是一个代码所产生的行为,它可能通过消耗代码而被依赖,尽管这种行为并没有通过代码被写入的规范来指定。因此,同一规范的其他实现可能不会表现出相同的行为,并会中断该消费代码。这就是为什么依靠它们不好。例如,如果要针对指定数组排序但不使用其算法的列表接口编写一些代码,并且您需要排序方法为stable,并且您的代码版本与非稳定的排序算法,那么你的代码就会中断。

8

一个“实现细节”是留给由开发者做出的决定,并且在较早的级中未指定(诸如需求文档,或根据上下文,架构文档。)

+3

这就是我的想法 - 只在实现级别定义的东西,而不是在设计/规划阶段。 – dotnetdev 2009-11-22 03:42:27

16

我不知道术语“实现细节”的确切形式定义,它通常是指某个规范的具体实现。

List为例。

List的规范可能会说“它能够在保留顺序的同时保存多个值并且具有重复值”。

从上面,它没有提及List使用什么样的后备数据结构 - 我们知道,它可能是一个数组或链表。这实际上是实现细节,这实际上由List的实现者决定。