【发布时间】:2011-12-04 06:36:08
【问题描述】:
我的班级名为Controller_Home。它应该继承自Controller_Permissions 和Controller_Template。任何以Controller_ 为前缀的类都必须继承自Controller 类。
如果 PHP(我的例子)支持多重继承,我可以这样做:
class Controller_Home extends Controller_Permissions, Controller_Template {
还有Controller_Permissions、Controller_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。
控制器、模板和权限只是示例。
【问题讨论】:
-
你假设多重继承很好地解决了这个问题。我不同意,我想你会得到的大多数答案都是一样的。我建议您将标题更改为:“如何在没有多重继承的情况下解决此问题”。
标签: php oop inheritance class-design multiple-inheritance