Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 10-07-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola,

Opino igual que Al, ¿10 parámetros? ¿Que de ellos el 40% sea opcional?
Desde ya decanto esa opción. Creo que deberías reconsiderar un mejor análisis de la situación.
Yo he llegado a declarar funciones, y clases... pero ninguna excede cuanto mucho a los 4 o 5 parámetros.

¿No podrías considerar que agunos parámetros sean propiedades de la clase?

Con respecto a la opción que te recomienda Neftali, creo que es la acertada. Y eso no quiere decir que debas codificar 10 veces el mismo código. Como te lo han dicho hay un error de diseño. La solución es buscar la mínima expresión común e implementarla en una función. Cada sobre carga llamará a dicha función (que debe ser privada, según una primera impresión y análisis).

El objetivo de los parámetros opcionales es evitar estar declarando valores que en la mayoría de los casos son considerados por defecto (o considerado lo mayormente esperado), por lo cual indicar un valor distinto sería considerado un caso "particular" (algo no habitual).

Este enfoque puede llevarse a la inversa. Es decir que nadie puede impedirte que emplees el valor opcional (por defecto) para evitar hacer una cosa. Algo como esto:

Código Delphi [-]
const
  CONST_NO_HAGAS_ESTO = 4;

//....

X.procedure EjemploALaInversa(A: integer; B: real; C: integer = CONST_NO_HAGAS_ESTO);
// posiblemente deba llevar la clausura overload....
begin
// ...
if C <> CONST_NO_HAGAS_ESTO
   then begin
            // Lo que quieres que haga...
          end
   else begin
            // Lo que no quieres que haga...
         end;
//...
end;

En resumen lo que he tratado de decirte es que podrías llevar y emplear el valor opcional en la forma inversa, es decir que si se suministra un valor distinto que se haga la operación que deba realizar.

Para finalizar, debo decirte que a pesar de que esta alternativa pueda llegar a funcionar sigue siendo un error conceptual y de diseño ya que el modo de trabajo no es el normal o "el esperado" del lenguaje. Puede llevar a confusiones en el futuro, y lo hace muy dificil de seguirle un correcto mantenimiento y documentación.

Espero que se me entienda.
Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿como llamo un procedimiento almacenado? jeshu252006 Conexión con bases de datos 6 28-10-2006 17:49:55
Parametros Opcionales no Parametros por defecto Velia Varios 7 19-08-2006 15:18:42
Parametros Opcionales c748a Varios 5 21-09-2005 04:53:25
Parametros Opcionales en Procedures/Functions Enan0 Varios 4 03-03-2005 10:32:30
Parametros opcionales en SELECTs Gydba Firebird e Interbase 4 22-04-2004 22:46:38


La franja horaria es GMT +2. Ahora son las 23:25:25.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi