मैं मूल रूप से एक विज्ञापन-प्रणाली के लिए डिस्प्ले-मॉड्यूल बना रहा हूं जिसे मैंने बनाया है।ऑब्जेक्ट ओरिएंटेड डिज़ाइन के साथ if-statement से बचें, PHP
मैं दोहराए गए बयान के साथ निम्नलिखित निर्माण से बचने की कोशिश कर रहा हूं।
मेरी आंत महसूस मुझे बताती है कि ऐसा करने का एक शानदार तरीका है, शायद बहुरूपता के साथ?
<?php
class Ad {
public $adState = 'active';
}
class AdWriter {
public function displayAd(Ad $ad, $viewmode = 'visitor') {
if ($viewmode =='visitor') {
if ($adState == 'active') {}
else if ($adState == 'paused') {}
else if ($adState == 'inactive') {}
}
else if ($viewmode = 'owner') {
if ($adState == 'active') {}
else if ($adState == 'paused') {}
else if ($adState == 'inactive') {}
}
else if ($viewmode == 'administrator') {
if ($adState == 'active') {}
else if ($adState == 'paused') {}
else if ($adState == 'inactive') {}
}
}
}
?>
उसने एक बेहतर तरीका पूछा, और आपने इसे दिखाया। अच्छा। :) –
हालांकि वास्तव में कुछ भी खत्म नहीं किया था? मैं अभी भी राज्यों के लिए बार-बार जांच कर अटक गया हूं। – Poyan
-1 यह प्रभावी रूप से ifs – Gordon