Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/05/2014, 22:54
M8Raafnro
 
Fecha de Ingreso: agosto-2012
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 0
Sonrisa Crear clase padre o individualizar métodos.

Buenas foreros, espero todo ande bien.
Mi consulta es la siguiente, como parte del aprendizaje que he tenido de PHP al fin llegué a la OO en PHP y me he dedicado a aprender sobre ello -si recomiendan algún libro, artículo o publicación de ello, más que bueno- y llegué a un problema con la lógica de si debo crear un padre para dos clases o si debo usar los métodos -que son exactamente los mismos- para cada uno por aparte y en sus respectivas clases. Sé que la herencia es uno de los pilares útiles de la POO por lo que me queda la duda de si es necesario crear dicha clase. Ahora voy a ser más específico, tengo dos clases -hijas- que son una para ejecutar sentencias de selección y otra para hacer llamados a procedimientos, el detalle está en que la clase padre, tiene funciones que ambos usan pero no son estrictamente relacionadas con las derivadas, me refiero a esto:

Clase padre.
Código PHP:
class Arguments{
        private 
$Args = array();
        
        public function 
__construct(){
        }
        
        protected function 
AddArg($Argument){
            
// Agrego argumentos (parámetros) del procedimiento o selección.
        
}
        
        protected function 
ClearArgs(){
                       
// Elimino cadenas no útiles (coma del argumento final que provocaría un error).
        
}
        
        protected function 
ArgsToString(){
            
// Convierto arreglo a cadena.
        
}
        
        public function 
__destruct(){
        }
    } 
Clase hija de selección.
Código PHP:
class Select extends Arguments{        
        private 
$Table;
        
        public function 
__construct{
        }
        
        public function 
AddTable($Table){
            
// Se agrega la tabla de la cuál se requiere la información.
        
}
        
        public function 
ExecSelect(){
            
// Se ejecuta la llamada al procedimiento.
                        // Limpio la cadena con la clase padre.
                        // Convierto a cadena el arreglo.
        
}
        
        public function 
__destruct(){
        }
    } 
Clase hija de llamada a procedimientos.
Código PHP:
class Procedure extends Arguments{
        
// Propiedades.
        
private $SP;
        private 
$Answ = array();
        
        public function 
__construct{
        }
        
        public function 
DefStoreProcedure($StoredProcedure){
            
// Se asigna el nombre del procedimiento a utilizar.
        
}
        
        public function 
AddAnsw($Answer){
            
// Se agrega el nombre de la respuesta. Es opcional.
        
}
        
        public function 
CallProcedure(){
            
// Ejecuto la llamada.
                        // Limpio la cadena con la clase padre.
                        // Convierto a cadena el arreglo.
        
}
        
        public function 
__destruct(){
        }
    } 
En el ejemplo de acá, utilizo la herencia con el fin de utilizar la clase padre para recibir los argumentos (parámetros) en ambas clases, por ejemplo:

Código PHP:
$Proc = new Procedure();
$Proc->AddArg(Parámetro 0);
$Proc->AddArg(Parámetro 1);
[...]
$Proc->CallProcedure(); 

Si ocupan el código completo lo pongo, lo puse así únicamente para dar una idea de cómo se forma el detalle lógico que es el que me da por ahora mala espina. Siento que uso mal la herencia o que la derivación podría cambiarse.

Saludos y gracias.

Última edición por M8Raafnro; 10/05/2014 a las 23:02