Ver Mensaje Individual
  #6 (permalink)  
Antiguo 09/11/2006, 15:10
Avatar de Felippe
Felippe
 
Fecha de Ingreso: octubre-2006
Mensajes: 54
Antigüedad: 17 años, 6 meses
Puntos: 0
Que tal este ejemplo:

Código PHP:

interface VO{
   public function 
insertarDatos();
}

class 
Persona implements VO{
    private  
$nombre;
    private  
$apellidos;

    public function 
insertarDatos(){
        
$query "INSERT INTO personas values ....";
        
// codigo adecuado para insertar en la tabla 'personas'....
        
return 1;
    }
}

class 
Proveedor implements VO{
    private  
$nombre;
    private  
$direccion;

    public function 
insertarDatos(){
        
$query1 "SELECT count(id_proveedor) from proveedor ...";
        
// codigo adecuado para buscar algun proveedor con el nombre '$nombre' ....
        
        
if( <no-existe> ){
            
$query1 "INSERT INTO proveedores VALUES...";
            
// codigo adecuado para insertar en la tabla 'proveedores'....
        
}else{
          return -
1;
        }
    }
}

class 
Transaccion {
    ... 
    
/* @param un objeto de tipo VO */
    
public function procesar$vo ){
       ...
       
$vo->insertarDatos();
    }

En este caso, a la clase Transaccion, en el método 'procesar', no le importa 'CÓMO' el objeto '$vo' lleva a cabo su tarea, solo le importa que "sabe insertar datos" (observa el comportamiento especifico de las clases Proveedor y Persona). Es decir, si conoces que algun objeto 'sabe hacer algo' puedes hacer que otras clases futuras, empleen ese comportamiento sin necesidad tener que hacerlo desde cero.