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(){
}
}
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(){
}
}
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(){
}
}
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.