Ich bin verwirrt, was der Unterschied oder der Leistungszuwachs zwischen diesen 2 Szenarien wäre. Warum sollte einer über den anderen gewählt werden?Unterschied zwischen diesen beiden OOP-Szenarien?
Übergeordnete Klasse:
class exampleB
{
public function __construct($arg1, $arg2)
{
// Do something with the arguments.
}
}
Child-Klasse A
class exampleA extends exampleB
{
public function make($arg1, $arg2)
{
parent::__construct($arg1, $arg2);
}
}
Ausführen des ersten Beispiel:
$exampleA = new exampleA();
$exampleA->make('arg1', 'arg2');
Das zweite Beispiel wäre:
Child-Klasse A
class exampleA extends exampleB
{
public static function make($arg1, $arg2)
{
return new static($arg1, $arg2);
}
}
das zweite Beispiel Laufen:
exampleA::make('arg1', 'arg2');
Könnte mir jemand sagen, die Vorteile und/oder Nachteile zwischen diesen beiden Szenarien? Der Grund, warum ich dieses Beispiel habe, weil ich den Konstruktor meiner Elternklasse nicht überschreiben möchte.
Ich würde auch nicht verwenden, '$ exampleA = new exampleA ('arg1', 'arg2');' ist alles, was Sie als Konstrukteur müssen in 'exambleB' automatisch, solange Sie don genannt werden überschreibe es nicht. – jeroen
Ich möchte den vorhandenen Konstruktor in meiner Elternklasse nicht überschreiben, deshalb habe ich diese Lösungen entwickelt. Sollte das hinzugefügt haben. –