Bir nesne sınıfını karar icar

0 Cevap php

Ben daha açıklayıcı bir başlık ile gelip üzgünüm. Benim sorun şudur. İki sınıfları A ve B var ve bazen bazı kod aslında ne tabi B tipi noktası bir nesne olduğunda A tipi bir nesne örneğini oluşturmaya çalıştığında ortaya çıkabilir olduğunu bildiğinizi varsayıyorum olduğunu {[(0)] } değil, istemci kodu.

Javascript basitçe yapabilirsiniz (Tamam, js sınıfları yok, ama bu nokta açıkça)

function A() {
    if(some_condition) {
        return new B();
    }
    //else we proceed to customize and return our object
}

PHP benzer bir şey yapmak istiyorum. Ben kadar gelebilir en iyi şey

class A {
    private function __construct() {
        //whatever you need to do
    }

    public static function getInstance() {
        if(some_condition) {
            return new B();
        }
        else {
            return new A();
        }
    }
}

Sorun, istemci kodu her zaman özel ve statik bir yöntem ile nesne örneğini oluşturmak için olduğunu bilmek zorunda olacaktır.

Kusursuz bir şekilde geri dönmek için nesne türü bir seçim temsilci bir yolu var mı?

0 Cevap