Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/07/2013, 17:41
Avatar de Italico76
Italico76
 
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Duda modelando usando POO

Pues no hay "problema"

..... pues eso se maneja a nivel de instancias (objetos) asi que cada instancia tiene su propio "estado interno"

Código PHP:
Ver original
  1. <?php
  2.  
  3. Class Problema
  4.  
  5. {
  6.     // defino los estados explitamente como constantes:
  7.     const deleted=-1;
  8.     const pending= 0;
  9.     const soluto = 1;
  10.     const paused = 2;
  11.  
  12.     private $estado = self::pending;
  13.     private $nombre = null;
  14.  
  15.     public function __construct ($nombre_problema){  
  16.         $this->nombre = $nombre_problema;
  17.     // ....
  18.     return $this;
  19.     }
  20.  
  21.     public function setEstado($estado)
  22.     {
  23.         $this->estado=$estado;
  24.         return $this;
  25.     }
  26.  
  27.     public function getEstado()
  28.     {
  29.         return $this->estado;
  30.     }
  31.     // otros metodos
  32. }
  33.  
  34. $p1 = (new Problema('casarme'))->setEstado(-1);
  35. $p2 = (new Problema('mantener hipoteca'))->setEstado(2);
  36.  
  37. echo "Estado de Problema #1 : {$p1->getEstado()} <br/>";
  38. echo "Estado de Problema #2 : {$p2->getEstado()}";


Te aconsejo que en el setter de estado agregues un chequeo de que se encuentre entre los estados posibles, en este caso en el rango de -1 a 2 y sino cumple generes una InvalidArgumentException

Otra cosa: si tu extienderas la clase Problema... para sus hijos es la misma cosa... (aclaro porque no se tu que entiendes)
__________________
Salu2!

Última edición por Italico76; 23/07/2013 a las 22:49