Básicamente estoy creando un módulo de visualización para un sistema publicitario que he creado.Evitar declaraciones if con diseño orientado a objetos, PHP
Estoy tratando de evitar la siguiente construcción, con declaraciones if repetidas.
Mi intuición me dice que hay una manera más inteligente de hacer esto, ¿quizás con polimorfismo?
<?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') {}
}
}
}
?>
Preguntó de una manera más inteligente, y usted lo mostró. Bueno. :) –
¿Eso realmente no eliminó nada sin embargo? Todavía estoy atascado con la comprobación de los estados en varias ocasiones. – Poyan
-1 esto es efectivamente lo mismo que el ifs – Gordon