动态语言中的界面和鸭子打字

How*_*ard 1 php design-patterns interface

例如在动态语言如PHP中,因为我们有鸭子打字,接口只是一个约束,它在实践中没有用?

Jon*_*Jon 5

我可以想到两种情况,它具有一些实际意义:

  1. 如果需要,接口允许您像人造静态类型语言一样:您可以检查对象的运行时类型以查看它是否实现了接口,您还可以使用类型提示自动为您执行此操作.
  2. 它记录了类型层次结构之间的关系(在大型库中).对于试图理解所述层次结构的人来说,这是一个很大的实际收获.