避免使用面向对象设计的if语句,PHP

Poy*_*yan 9 php oop if-statement

我基本上是为我创建的广告系统创建一个显示模块.

我试图避免以下构造,重复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') {} 
        } 
    } 
}  

?>
Run Code Online (Sandbox Code Playgroud)