मेरे पास मेरी PHP लाइब्रेरी में कई स्थिर फैक्ट्री पैटर्न हैं। हालांकि, स्मृति पदचिह्न हाथ से बाहर हो रहा है और हम निष्पादन समय के दौरान आवश्यक फ़ाइलों की संख्या को कम करना चाहते हैं।स्थैतिक फैक्ट्री पैटर्न का उपयोग करते समय PHP पुस्तकालयों को शामिल करने का सबसे अच्छा तरीका क्या है?
require_once('Car.php');
require_once('Truck.php');
abstract class Auto
{
// ... some stuff ...
public static function Create($type)
{
switch ($type) {
case 'Truck':
return new Truck();
break;
case 'Car':
default:
return new Car();
break;
}
}
}
इसका कारण यह है Car.php और Truck.php भी केवल एक या दूसरे की जरूरत हो सकती है, हालांकि शामिल करने की आवश्यकता होगी अवांछनीय है: यहाँ है जहाँ हम आज कर रहे हैं का एक उदाहरण है। जहां तक मुझे पता है, आवश्यकता/शामिल है और उनके ..._ एक बार विविधता में पुस्तकालयों को एक ही दायरे में शामिल किया गया है, क्योंकि यह कॉल है। क्या ये सच है?
यदि हां, तो मेरा मानना है कि यह एक स्मृति रिसाव के लिए नेतृत्व करेंगे:
abstract class Auto
{
// ... some stuff ...
public static function Create($type)
{
switch ($type) {
case 'Truck':
require_once('Truck.php');
return new Truck();
break;
case 'Car':
default:
require_once('Car.php');
return new Car();
break;
}
}
}
ऐसा नहीं है कि 2 उदाहरण में, बनाने के लिए कई कॉल (मेरे लिए लग रहा है) एक से अधिक करने के लिए नेतृत्व करेंगे के दायरे की वजह से की आवश्यकता है कॉल की आवश्यकता होती है भले ही requ_once स्वाद का उपयोग किया जाता है।
क्या यह सच है? उदाहरण के रूप में php में गतिशील रूप से पुस्तकालयों को शामिल करने का सबसे अच्छा तरीका क्या है?
धन्यवाद!
एक वाक्य रचनात्मक चीनी को स्वत: लोड कर रहा है, जिसके लिए स्थानीय स्तर पर स्कॉप्ड की आवश्यकता नहीं है? – thesmart
जब फ़ाइल "आवश्यक" में कक्षा परिभाषाएं होती हैं, तो स्थानीय क्षेत्र के साथ कोई समस्या नहीं है।PHP जावा जैसे "आंतरिक वर्ग" का समर्थन नहीं करता है; सभी वर्गों को वर्तमान नामस्थान के "शीर्ष स्तर" पर परिभाषित किया गया है। –