gpt4 book ai didi

php - 在没有多重继承的情况下如何解决这个问题?

转载 作者:行者123 更新时间:2023-12-02 01:46:16 25 4
gpt4 key购买 nike

我有一个名为Controller_Home的类。它应该继承自 Controller_PermissionsController_Template。任何以 Controller_ 为前缀的类都必须继承自 Controller 类。

如果 PHP 支持多重继承(我的例子),我可以这样做:

class Controller_Home extends Controller_Permissions, Controller_Template {

Controller_PermissionsController_Template:

Controller_Permissions extends Controller {

Controller_Template extends Controller {

现在我需要做这样的事情:

class Controller_Home extends Controller_Template {

class Controller_Permissions extends Controller_Template {

Controller_Template extends Controller {

好的,成功了!

现在我需要在没有权限的情况下使用Controller_Template(在Controller_Permissions中)。

如何在不重复代码的情况下做到这一点?我不需要另一个类 Controller_TemplateWithoutPermissions

Controller 、模板和权限只是示例。

最佳答案

多重继承的常见替代方法是使用组合。这使得该关系成为“具有”关系,而不是"is"关系。即,在上面的示例中,您可能有 ControllerHome 从 ControllerTemplate 继承,但将一些 ControllerPermissions 作为变量。这样,ControllerHome 是一个 ControllerTemplate 并且具有 ControllerPermissions。

关于php - 在没有多重继承的情况下如何解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7709051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com