PHP5中接口的好处是什么?

3

如您所知,我们可以在PHP5中使用接口和实现。

我在Java SE中使用过接口,但它只对监听器或其他类似情况有用,在PHP5中我无法找到任何接口的好处。

请帮助我了解PHP5中接口的好处。

感谢您的建议。

2个回答

6
在面向对象的语言中,你无法否认接口所带来的好处,有数百个好处。
让我用一个“白痴”的例子来解释:
我假设你使用MVC和Ajax。在每次input的focusout事件发生时,你将传递input值到服务器,并传递一个存储在data-model(自定义)属性中的模型名称。
<input name="myfield" value="myvalue" data-model="user_model" onblur="send ajax request .." />

现在,当您从输入框中失去焦点时,它会将数据发送到服务器,如下所示。
{"a_model":"user_model","a_name":"myfield","a_value":"myvalue"}

在服务器上,你只需调用从ajax请求中接收到的模型名称。就像这样:
$this->{$a_model}->update($a_field,$a_value);

这里$a_model的值会变化,因此无法确定该模型是否有update()方法。这时接口就发挥作用了。 接口强制所有已实现的模型(类)都具有一个update()方法,以便您可以无条件地运行上述代码。

希望这样说得清楚。


4

一个例子。
我和一个远程团队合作,他们正在构建一个系统,我需要它与我的系统进行接口。
我可以编写一个复杂的文档,也可以只发送一个接口文件,并告诉他们必须在他们开发的内容中实现该接口。

顺便说一下,接口的使用是与语言无关的,大多数情况下都是相同的概念。


1
编写接口是计算机科学中称为封装的概念。其思想是接口的用户不会受到其实现细节的干扰,只需要遵守约定的合同即可。 - Yzmir Ramirez
1
@Yzmir Ramirez 理论的问题在于它只是理论,对于大多数人来说,实际的例子是必要的。 - Itay Moav -Malimovka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接