Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Ver Resultados de Encuesta: Que crees que es mejor?
Métodos sobrecargados 14 93,33%
Métodos "repetidos" 1 6,67%
Votantes: 15. Tú no puedes votar en esta encuesta

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-10-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Métodos sobrecargados vs métodos repetidos

Acabo de abrir una encuesta en la comunidad de Desarrolladores Delphi de Google Plus

La encuesta reza lo siguiente:

Que crees que es mejor? (teniendo en cuenta gustos, legibilidad, flexibilidad, performance.. lo que se les venga a la cabeza)

Metodos sobrecargados:

Código Delphi [-]
procedure Foo(const Text: string); overload;
procedure Foo(const Text: string; const Args: array of const); overload;
Metodos "separados":

Código Delphi [-]
procedure Foo(const Text: string);
procedure FooFmt(const Text: string; const Args: array of const);
Responder Con Cita
  #2  
Antiguo 16-10-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Traduciendo mi respuesta del ingles:

Yo voto por la opcion de metodos sobrecargados, sobre todo por la legibilidad y porque se escribe menos.

Ademas, da la sensacion de que la clase es mas simple porque parece que hay "menos metodos"

Por ultimo, el IDE es capaz de mostrar al mismo tiempo todas las "posibilidades" del metodo en cuestion. De esa manera obtengo en un instante mas informacion de que puede hacer la clase, sin tener que ponerme a revisar si "habra algun metodo que hace lo mismo del string pero que me permita pasarle el arreglo para el Format? o tengo que invocar yo mismo a Format?"
Responder Con Cita
  #3  
Antiguo 16-10-2016
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Los métodos sobrecargados me parecen mucho más cómodos por legibilidad y todo lo que acabas de mencionar... de hecho he notado que las nuevas bibliotecas de otros lenguajes han apelado por este tipo de técnicas para lograr tener descripciones claras sin necesidad de ser tan largas (Aunque a veces sí tengan que ser largas si se trata de no sacrificar claridad).
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #4  
Antiguo 16-10-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Idem. por lo mismo
Responder Con Cita
  #5  
Antiguo 16-10-2016
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Como bicho raro y amante del C/C++ estoy muy acostumbrado a la sobrecarga. En C/C++ es algo tan natural, que no hay ni que especificarla, basta con que los parámetros sean diferentes.
Voto por la sobrecarga.
Responder Con Cita
  #6  
Antiguo 16-10-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Coincido con todo lo dicho y sumo un voto a la sobrecarga.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 17-10-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Cita:
Empezado por escafandra Ver Mensaje
Como bicho raro y amante del C/C++ estoy muy acostumbrado a la sobrecarga. En C/C++ es algo tan natural, que no hay ni que especificarla, basta con que los parámetros sean diferentes.
Voto por la sobrecarga.
+1

Nunca entendi porque en Pascal tenemos que avisarle al compilador que estamos sobrecargando un metodo

A mi muchas veces me molesta porque me suele pasar que el agregar overload provoca que el texto sobrepase el margen derecho, y luego al pasarle el formatter me ponga el overload en la siguiente linea. (Se que puedo ampliar este margen, pero eso tendria otros efectos no deaseados. El valor que tengo me deja contento para todos los casos, siendo este la excepcion)

Otra cosa que me molesta de la sobrecarga, esta relacionada con las funciones. En "teoria", una funcion en Pascal no es mas que un procedimiento donde el valor de retorno es un parametro implicito de salida (out) y tiene por nombre Result. Si ese fuera el caso, el compilador podria diferenciar entre las invocaciones:

Código Delphi [-]
  // error de compilacion, E2252 Method 'Bar' with identical parameters already exists
  TFoo = class
  public
    function Bar: Integer; overload;
    function Bar: string; overload;
  end;

Sin embargo, si usamos un procedure con un parametro de salida out, si que compila:

Código Delphi [-]
  TFoo = class
  public
    procedure Bar(out Result: Integer); overload;
    procedure Bar(out Result: string); overload;
  end;
Responder Con Cita
Respuesta



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
Punteros de Metodos Paulao Varios 1 19-07-2011 01:53:29
Métodos de estudio. ixMike Humor 0 19-12-2007 20:37:21
Metodos abstractos nikotina JAVA 6 17-08-2007 19:29:01
herencia de metodos supermilloriver OOP 7 07-01-2006 14:46:01
Métodos de clase. jplj OOP 14 22-11-2004 09:30:19


La franja horaria es GMT +2. Ahora son las 01:43:40.


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