2011-04-13 24 views
1

例如在像PHP这样的动态语言中,由于我们有鸭子打字,界面只是一个约束,它在实践中没有用处?动态语言界面和鸭子打字

+2

它确实有用,如果你按照设计合同(我这样做)。 – ircmaxell 2011-04-13 14:13:41

+0

[动态语言中的接口是否有任何要点?](http://stackoverflow.com/questions/91618/is-there-any-point-for-interfaces-in-dynamic-languages) – Gordon 2011-04-13 14:18:50

回答

5

有两种情况下,我能想到的它给它一些重要的实际意义:

  1. 如果需要的话,一个接口可以让你表现得像一个虚假的静态类型语言:你可以检查对象的运行时类型看它是否实现了这个接口,并且您还可以通过type hinting自动获取PHP来为您实现。
  2. 它记录了类型层次结构之间的关系(在一个大型库中)。对于试图理解所述层次结构的人来说,这是一个巨大的实际收益。