1

我有一个功能需要由管理我的软件的一个共同方面的几个类共享。在 Java 中,我会将所有这些类放在同一个包中,并且通用功能将在帮助类中的受保护方法中。

在 PHP 中,受保护的方法意味着您只能在子类中使用它,所以我目前的解决方案是使方法受到保护,并让所有需要此方法的类来扩展帮助类。我目前的解决方案的问题是你不能继承多个类所以可以说我需要帮助类,我...

那么,有没有办法让方法可见性与 PHP 中的 java protected 相当?如果没有,任何更清洁的方法来解决我的问题?

4

2 回答 2

6

听起来您正在寻找使用特征。

http://php.net/manual/en/language.oop5.traits.php

这将允许您定义共享的受保护方法并提供给需要它的类。我建议使用接口来实现它,以便您可以指定 trait 提供的方法必须存在。

PHP 只允许您扩展一个抽象类,但是您可以实现多个接口。

于 2013-09-04T13:42:16.987 回答
2

您可以尝试命名空间(5.3)并引用实用程序类而不是扩展它。这并不能完全解决问题,但确实有助于隔离您的班级。我尽量避免使用私有方法。

在 PHP 5.4 中,他们添加了特性,允许一个类扩展多个类。施莱斯已经回答了这个问题。

于 2013-09-04T13:46:04.937 回答