总结 (Wrapping up)

本章我们覆盖了相当多不同的特质 (trait)——而且我们只触及了表面! 你可能觉得有很多东西要记,但别担心:在写 Rust 代码时你会经常碰到这些特质,很快它们就会变成你的第二天性。

收尾思考 (Closing thoughts)

特质很强大,但不要滥用。
请记住下面几条指导原则:

  • 不要因为一时的便利就让函数泛型化——如果它总是只用一种类型来调用。这会在你的代码库里引入间接性,让代码更难理解和维护。
  • 如果你只有一个实现,就不要创建特质。这通常意味着你不需要这个特质。
  • 在合理时为自己的类型实现标准特质(DebugPartialEq 等)。 这能让你的类型更符合习惯用法,更易于使用,并解锁标准库及生态 crate 提供的大量功能。
  • 如果你需要某个第三方 crate 在它的生态中解锁的功能,就实现该 crate 的特质。
  • 警惕仅仅为了在测试中使用 mock 而把代码变成泛型的做法。这种方式的可维护性代价可能很高,通常更好的做法是采用不同的测试策略。详情可以查看测试 master class,了解高保真度测试。

检验你的知识 (Testing your knowledge)

继续向前之前,让我们再做最后一个练习来巩固所学。 这次你只会得到很少的指引——只有练习描述和测试可供参考。

原文链接:英文原文