我基本上为我创建的广告系统创建一个显示模块。避免使用面向对象设计的if语句,PHP
我试图避免以下结构,重复的if语句。
我的直觉告诉我有更聪明的方法来做到这一点,也许与多态?
<?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') {}
}
}
}
?>
他问了一个更聪明的方法,并且你展示了它。好。 :) – 2011-06-16 11:23:17
这并没有真正消除任何东西,但?我仍然坚持不断地检查各州。 – Poyan 2011-06-16 11:26:14
-1这与我将研究的ifs – Gordon 2011-06-16 11:34:39