0

私はこの基本クラスを持っています:

class Base
{
    public $extA;
    public $extB;

    function __construct()
    {

    }

    public function Init()
    {
        $this->extA = new ExtA();
        $this->extB = new ExtB( $this );
    }

    public function Test()
    {
        return 'Base Test Here!';
    }
}

基本クラスを拡張するクラス ExtA

class ExtA extends Base
{
    public function Test()
    {
        return 'ExtA Test Here!';
    }
}

クラスExtBも基本クラスを拡張します

class ExtB extends Base
{
    private $base;

    public function __construct( $base )
    {
        $this->base = $base;
    }

    public function Test()
    {
        return 'ExtB calling ExtA->Test()::' . $this->base->extA->Test();
    }
}


$base = new Base();
$base->Init();

var_dump( $base->Test() );
var_dump( $base->extA->Test() );
var_dump( $base->extB->Test() );

ExtB から ExtA クラスの Test() 関数を呼び出そうとすると、ExtA と ExtB の両方が Base クラスを拡張しています。私の質問は次のとおりです:これは大丈夫ですか、それともより良い、より速い解決策がありますか?

拡張も必要ですか?または、単にこのように

class ExtA
{
     ...
}
class ExtB
{
     ...
}

ありがとう!

4

1 に答える 1