重複の可能性:
PHP の遅延静的バインディングとは正確には何ですか?
静的関数を使用して子クラスをインスタンス化する抽象クラスを構築したいと思います。
<?php
class A
{
protected $value;
public function __construct($value)
{
$this->value = $value;
}
public static function create($value)
{
/* A must not know about B!
* I give that example for the context understanding */
return **new B**($value);
}
}
class B extends A
{
}
もちろん、AはB について知る必要はありません。可能かどうかはわかりません。170 のサブクラスすべてに create 関数を実装する必要はありません。
170 個のクラスのうちの 1 つのインスタンスを返すFactoryを使用する必要があると思いますか? それは面倒で、あまり維持できません..