Design patterns
जिम्मेदारी की श्रृंखला
खोज…
जिम्मेदारी की श्रृंखला उदाहरण (Php)
एक ऑब्जेक्ट में कहा जाने वाला एक तरीका ऑब्जेक्ट्स की श्रृंखला को आगे बढ़ाएगा जब तक कि एक ऐसा नहीं मिलता है जो कॉल को ठीक से संभाल सकता है। यह विशेष उदाहरण उन कार्यों के साथ वैज्ञानिक प्रयोगों का उपयोग करता है जो केवल प्रयोग का शीर्षक, प्रयोग आईडी या प्रयोग में उपयोग किए गए ऊतक को प्राप्त कर सकते हैं।
abstract class AbstractExperiment {
abstract function getExperiment();
abstract function getTitle();
}
class Experiment extends AbstractExperiment {
private $experiment;
private $tissue;
function __construct($experiment_in) {
$this->experiment = $experiment_in;
$this->tissue = NULL;
}
function getExperiment() {
return $this->experiment;
}
//this is the end of the chain - returns title or says there is none
function getTissue() {
if (NULL != $this->tissue) {
return $this->tissue;
} else {
return 'there is no tissue applied';
}
}
}
class SubExperiment extends AbstractExperiment {
private $experiment;
private $parentExperiment;
private $tissue;
function __construct($experiment_in, Experiment $parentExperiment_in) {
$this->experiment = $experiment_in;
$this->parentExperiment = $parentExperiment_in;
$this->tissue = NULL;
}
function getExperiment() {
return $this->experiment;
}
function getParentExperiment() {
return $this->parentExperiment;
}
function getTissue() {
if (NULL != $this->tissue) {
return $this->tissue;
} else {
return $this->parentExperiment->getTissue();
}
}
}
//This class and all further sub classes work in the same way as SubExperiment above
class SubSubExperiment extends AbstractExperiment {
private $experiment;
private $parentExperiment;
private $tissue;
function __construct($experiment_in, Experiment $parentExperiment_in) { //as above }
function getExperiment() { //same as above }
function getParentExperiment() { //same as above }
function getTissue() { //same as above }
}
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow