【问题标题】:Asking opinion about multipe inheritance询问关于多重继承的意见
【发布时间】:2014-07-24 03:34:44
【问题描述】:

我的导师说过,

我当前的developing project 始终需要session object
Bulletin controllerUser controller 也始终需要session object
这意味着,最好为您当前的developing project 提供Super(Parent) Class
"Super Class" 并不意味着已经存在的Controller_Base

好吧,PHPJava 不能像下面那样做"Multiple inheritance"

------------------------------
class Controller_Bulletin extends Controller_Base, Controller_Application
------------------------------

会出错。

如果你是我,你认为你会做什么?
我很困惑,需要一些建议。

【问题讨论】:

    标签: php class object inheritance


    【解决方案1】:

    您可以使用更柔和的依赖注入而不是多重继承(这在 PHP 中是不可能的)更好地实现这一点。

    只需在初始化期间为每个需要它的类提供 Session 对象的特定实例。

    class MyClass {
    
        protected $session;
    
        public function __construct($stuff) { ... }
    
        public function setSession($session) {
            $this->session = $session;
        }
    
    }
    
    $myObject = new MyClass();
    $myObject->setSession($session);
    $myObject->doSomeStuff();
    

    另一个试图解决 PHP 中多重继承问题的方法是 Traits。 您可以使用这些为众多类添加一些功能。在我看来,依赖注入是一种更好的方法。

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

    【讨论】:

      猜你喜欢
      • 2018-11-26
      • 1970-01-01
      • 2015-11-11
      • 2015-03-26
      • 2020-03-09
      • 2016-05-07
      • 2013-07-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多