これはおそらく本当に簡単な答えですが、少しアドバイスをいただければ幸いです。オブジェクト指向の共通メソッド:インタフェース、抽象的なものなど
すべてのオブジェクトで同じload()メソッドとloadMultiple()メソッドを使用する小さなシステムがあります。それぞれのコードはまったく同じです。非常に単純な例です。
public static function load($id) {
// Instantiate the object
$object = new self($id);
return $object;
}
上記の例のコードは明らかにインターフェースに行くことができないが、私は(loadMultiple方法で同じ)オブジェクトをインスタンス化していてどちらも、それは抽象クラスで行くことができます。
これに対して最も洗練されたソリューションは何ですか?私は現在、次のような親クラスを作成する予定です:
class Object_Model {
public function load() {
// Code here
}
public function loadMultiple() {
// Code here
}
}
class Object1 extends Object_Model {
}
class Object2 extends Object_Model {
}
しかし、私はよりよい方法が必要であると確信しています。ある?クラスの名前はインスタンス化すると、そのID:
function load($class, $id) {
return new $class($id);
}
それはだあなたの現在のコードが静的メソッドを使用するので
は
おかげでピーターを与えたLSB説明。 レイトスタティックバインディングは完全に見えます。しかし私は、私たちのサーバーがそれをサポートするとは思わない。 私はあなたとIonutが言っていることを理解していますが、私はとても優雅に近い5.3が提供しているときには、一歩後退のように思えます。 – PJE