我很困惑這兩種情況之間會有什麼區別或性能增益。爲什麼要選擇另一個呢?這兩種OOP情景之間的區別?
父類:
class exampleB
{
public function __construct($arg1, $arg2)
{
// Do something with the arguments.
}
}
兒童類A
class exampleA extends exampleB
{
public function make($arg1, $arg2)
{
parent::__construct($arg1, $arg2);
}
}
運行的第一個例子:
$exampleA = new exampleA();
$exampleA->make('arg1', 'arg2');
第二個例子是:
子類中
class exampleA extends exampleB
{
public static function make($arg1, $arg2)
{
return new static($arg1, $arg2);
}
}
運行第二個例子:
exampleA::make('arg1', 'arg2');
有人能告訴我的優點和/或這兩種情況之間的缺點?我有這些例子的原因是我不想重寫我的父類的構造函數。
我也不會要麼使用'$照例a =新照例a(「ARG1」,「ARG2」);'是所有你需要在'exambleB'構造,只要將自動稱爲你不不會覆蓋它。 – jeroen
我不想重寫我的父類中現有的構造函數,這就是爲什麼我想出了這些解決方案。應該補充一點。 –