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

时间:2011-04-13 14:10:42

标签: php design-patterns interface

e.g。在动态语言如PHP中,既然我们有鸭子打字,接口只是一个约束,它在实践中没有用?

1 个答案:

答案 0 :(得分:5)

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

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