Tema: Clases
Ver Mensaje Individual
  #6 (permalink)  
Antiguo 27/03/2003, 08:27
Avatar de Webstudio
Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
2) Facilidad de uso y Abstracción. Así como está planteada tu clase, el objeto instanciado no es más que una "libreria de funciones" que no se desempeña mucho como un Objeto Abstracto. cuando vas a programar Orientado a Objetos, antes que nada, hay que pensar en la "interfase" que el objeto va a tener con el mundo exterior, los servicios que va a proporcionar. Por eso, te recomiendo que los métodos no sean tantos para obtener un mismo resultado. Por ejemplo, el método "insert" no tiene mucho sentido si después no se hace un "query"... porqué separar las funcionalidades entonces? O directamente haces un método Query que tome como parámetro un Query completo o sino, haces que el método Insert llame automáticamente a Query luego de tomar el parámetro. Otra cosa que podrías cambiar, a modo de sencillez en la programación del usuario de tu clase, es que la conexión y la selección de la base de datos, se haga en el Constructor, ya que si instancias un Objeto de Manejo de BBDD, entonces es casi seguro que te querrás conectar, no ? Esas cosas son las que ahorran tiempo luego al usuario de la clase y ayudan a una más rápida programación.

3) Toma de parámetros en las funciones. Veo que estás utilizando func_get_args(); en tus métodos, cuando no es para nada necesario. func_get_args(); te puede servir cuando no sabes ( o prefieres no saber ) la cantidad de parámetros que recibe un método, como para simular el Polimorfismo por cantidad de parámetros. Pero en tu caso, si que sabes cuántos parámetros necesitas, o 1 o 2 o 3. Entonces, en esos casos, te recomiendo que utilices los nombres de los parámetros en tus métodos, ya que no solo ahorrarás en performance sino que también en claridad, ya que queda mucho más claro un parámetro $query que un func_get_args(0);

4) Errores en los métodos. Una buena práctica, sobre todo en la programación orientada a objetos, es que las funciones al fallar, retornen False, de esa manera se puede validar el correcto funcionamiento o la falla en la ejecución. Lo bueno que tiene la programación orientada a objetos, es que puedes tener un miembro en tu clase que sirva para guardar el último error generado y que sirva para hacer debug de tu aplicación. Este es un caso que me ha servido mucho :

Código PHP:
<?
var $error "";

function 
error()
{
    switch(
func_num_args())
    {
        case 
0: return $this->error;
        case 
1$this->error func_get_args(0);
    }
}

function 
query($query)
{
    if(empty(
$query))
    {
        
$this->error("El query está vacío");
        return 
false;
    }
}
?>
De esta manera, al retornar el método query Falso por haber fallado, tan solo puedes hacer un echo $obj->error(); y te mostrará el motivo del fallo ( pudiendo tener varios motivos de fallo un solo metodo ).
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com