मैं उस में एक कारखाने में पैटर्न समारोह के साथ एक वर्ग है:instantiating बच्चे कक्षाओं
abstract class ParentObj {
public function __construct(){ ... }
public static function factory(){
//returns new instance
}
}
मैं कारखाने फ़ंक्शन को कॉल करें और फोन करने का एक उदाहरण वापस जाने के लिए सक्षम होने के लिए बच्चों की जरूरत है कक्षा: $child = Child::factory();
और अधिमानतः बाल वर्ग में फैक्ट्री फ़ंक्शन को ओवरराइड किए बिना।
मैंने इसका लाभ उठाने के कई अलग-अलग तरीकों का प्रयास किया है। मैं उन समाधानों से दूर रहना पसंद करूंगा जो प्रतिबिंब का उपयोग करते हैं, जैसे __CLASS__
।
मैं क्षण में RC4 के साथ खेल रहा हूँ ... –
LSB लगता है:
एक कारखाना पैटर्न इस तरह काम करेगा सबसे अच्छा समाधान होने के लिए जो मैं अपने आप पा सकता हूं। जब तक मैं अपग्रेड नहीं करता हूं, सबसे अच्छा मैं बच्चे के नाम को फैक्ट्री() में पास कर सकता हूं या नाम को संपत्ति के रूप में परिभाषित कर सकता हूं और फैक्ट्री() –
से इसे पकड़ सकता हूं, PHP मैनुअल के मुताबिक, ' get_called_class() 'जो' __CLASS__' की तरह काम करता है http://us.php.net/manual/en/function.get-called-class.php –