Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

"Polimorfismo, un patrón estratégico"

Estas en el tema de "Polimorfismo, un patrón estratégico" en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Estaba repasando la documentación de PHP sobre constructores y subclases, y me encontré con que no se puede definir varios constructores para una misma clase... ...
  #1 (permalink)  
Antiguo 13/08/2008, 08:11
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 15 años, 11 meses
Puntos: 5
Pregunta ¿Así que PHP5 no adminte multiples constructores?

Estaba repasando la documentación de PHP sobre constructores y subclases, y me encontré con que no se puede definir varios constructores para una misma clase...

Quizá estoy confundido, esto es realmente así?

¿Porque? ¿Que opinan ustedes?
  #2 (permalink)  
Antiguo 13/08/2008, 08:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ¿Así que PHP5 no adminte multiples constructores?

Hola chitoso,

Es lo correcto, pero puedes "emular" la funcionalidad usando func_get_args() para obtener valores dinamicos.

La razón es debido a que PHP es un lenguaje que no forza la definición de variables, es decir, no es necesario que una variable sea un int o un string, por lo que tu puedes crear tu constructor y dentro del constructor realizar la logica de ver que tipo de dato es y hacer cierta tarea.

Saludos.
  #3 (permalink)  
Antiguo 13/08/2008, 08:27
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 15 años, 11 meses
Puntos: 5
Respuesta: ¿Así que PHP5 no adminte multiples constructores?

Por supuesto, qué torpe!

De todas maneras, me decepcionó un poco.

¿No se va a implementar en futuras versiones?
  #4 (permalink)  
Antiguo 13/08/2008, 08:38
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: ¿Así que PHP5 no adminte multiples constructores?

Es así, es distinto a Java, no puedes tener múltiples métodos con nombres iguales pero con firmas distintas (diferencias en los parámetros).

De todas formas, es una práctica bastante discutida, ya que no siempre ayuda a terminar con un buen diseño, ya que en vez de tener un solo método que hace una tarea concreta tienes múltiples métodos que parecen ser el mismo pero que en realidad hacen cosas distintas... entonces... son métodos iguales o distintos? deberían llamarse igual?

Sugerencias para estos casos:
  • Crea métodos distintos según el tema
  • Si requieres variación en la firma, crea un array o un "objeto parámetro" y oculta dentro las distintas opciones.
  • Para el caso del constructor, piensa conceptualmente cual es la mínima información que define al objeto para estar creado de forma elemental, y posteriormente usar métodos get / set según la necesidad.
Por ejemplo, si dices que en tu contexto una clase Usuario puede crearse con id y nombre, pero puede no tener clave y tal vez ni email, aunque hay casos que tienes todos estos datos al crear el objeto, puedes resolver que:

"La información básica para crear el usuario es id y nombre", posteriormente asignas la clave y el email si cuentas con ellos.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #5 (permalink)  
Antiguo 13/08/2008, 08:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ¿Así que PHP5 no adminte multiples constructores?

¿Porque decepcionar?, Como bien indica Enrique puede llegar a crear problemas de diseño, y en el caso que los necesites es perfectamente posible hacerlo usando func_get_args().

Decepcionante sería que no hubiera ni una sola manera de hacerlo.

Saludos.
  #6 (permalink)  
Antiguo 13/08/2008, 09:08
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 15 años, 11 meses
Puntos: 5
Respuesta: ¿Así que PHP5 no adminte multiples constructores?

Claro, es discutible por las razones que vos decis...

Ahora, prefiero hacer varios métodos del estilo "crearUsuarioEnBlanco()", "crearUsuarioConTodosLosDatos($x, $y, $z...)", "crearUsuarioIdYClave($x, $y)" que llamen al consructor, haga sets de la información extra y devuelva un Usuario, antes que emular el comportamiento de un constructor en Java, con func_get_args().

GatorV, si, si no se pudiera hacer de ninguna manera sería como para ponerse a llorar... Pero, es lo que sentí, pensé que era un comportamiento tan básico, que me olvidé que por las características de php, no iba a poder ser posible.

Aunque creo que ahora que está disponible Type Hinting, se podría implementar...
  #7 (permalink)  
Antiguo 13/08/2008, 09:17
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: ¿Así que PHP5 no adminte multiples constructores?

Cita:
Claro, es discutible por las razones que vos decis...

Ahora, prefiero hacer varios métodos del estilo "crearUsuarioEnBlanco()", "crearUsuarioConTodosLosDatos($x, $y, $z...)", "crearUsuarioIdYClave($x, $y)" que llamen al consructor, haga sets de la información extra y devuelva un Usuario, antes que emular el comportamiento de un constructor en Java, con func_get_args().
Mmmm... por qué tan rebuscado? El mejor diseño es el más simple (y es escalable )

Crea un solo constructor simple y luego asigna los valores por "set". Si tus aplicaciones necesitan que les devuelvas los objetos de tipo "Usuario" ya cargados, crea entonces una "Fabrica de Usuarios" (una clase aparte o un método dentro de la clase Usuarios que se llame "factory") y que reciba valores dinámicos por un parámetro objeto o un array, y posteriormente le devuelves la instancia ya cargada (que hiciste internamente con un constructor simple y asignando con set).

Es un camino ampliamente recorrido y seguro, para que vamos a caminar por el precipicio innecesariamente?

Cita:
Aunque creo que ahora que está disponible Type Hinting, se podría implementar...
No entendí esta parte, por qué lo dices?
__________________
Blog phpsenior.com Cursos a Distancia surforce.com

Última edición por enriqueplace; 13/08/2008 a las 09:19 Razón: mal redactado
  #8 (permalink)  
Antiguo 13/08/2008, 09:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ¿Así que PHP5 no adminte multiples constructores?

Al contrario Type Hinting, te crearia el problema ya que forzas que un parámetro sea de determinado tipo, en lugar de que sea una variable dinamica.

Lo mejor es que hagas lo que te dice Enrique, el patrón Factory se encarga justo de eso.

Saludos.
  #9 (permalink)  
Antiguo 13/08/2008, 09:33
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 15 años, 11 meses
Puntos: 5
Respuesta: ¿Así que PHP5 no adminte multiples constructores?

Si, conozco el patrón de diseño y me parece una solución válida.
Pero lo que dije es que antes que preguntar por la cantidad de argumentos que se pasan y chequear por el tipo, preferiría hacer 2 métodos diferentes, porque me parece que queda mucho mas claro y más sencillo.

Lo segundo lo dije porque con type hinting sería posible tener dos constructores y definir el tipo en la firma... no?

__construct( boolean $a)
__construct( String $s)
  #10 (permalink)  
Antiguo 13/08/2008, 09:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ¿Así que PHP5 no adminte multiples constructores?

Hola chitoso,

Tu mismo viste las limitantes, no es posible tener dos constructores, como te digo debes de usar las variables dinamicas y comprobar como por ejemplo con is_array, is_boolean, is_string, etc.

Saludos.
  #11 (permalink)  
Antiguo 13/08/2008, 09:44
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 15 años, 11 meses
Puntos: 5
Respuesta: ¿Así que PHP5 no adminte multiples constructores?

ok, ok, okkkkk
Gracias por la info
  #12 (permalink)  
Antiguo 13/08/2008, 09:47
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: ¿Así que PHP5 no adminte multiples constructores?

Cita:
Si, conozco el patrón de diseño y me parece una solución válida.
Pero lo que dije es que antes que preguntar por la cantidad de argumentos que se pasan y chequear por el tipo, preferiría hacer 2 métodos diferentes, porque me parece que queda mucho mas claro y más sencillo.
Será más sencillo, pero no más claro. Lo "sencillo" es mantener el "diseño sencillo".

Cita:
Lo segundo lo dije porque con type hinting sería posible tener dos constructores y definir el tipo en la firma... no?

__construct( boolean $a)
__construct( String $s)
Es lo mismo, ahí tienes dos metodos iguales pero con distintas firmas, y eso es lo que no soporta PHP y sí hace Java.

Manten el diseño simple, deja tranquilo al pobre constructor, por favor
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #13 (permalink)  
Antiguo 13/08/2008, 09:51
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 15 años, 11 meses
Puntos: 5
Respuesta: ¿Así que PHP5 no adminte multiples constructores?

Bueno, bueno, no me reten más, que uno solo quiere aprender, chee!
jejeje, no, fuera de bromas, gracias a los dos.

Saludos,
Ignacio
  #14 (permalink)  
Antiguo 13/08/2008, 10:34
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: ¿Así que PHP5 no adminte multiples constructores?

De todas formas, sugerencia, no hay que atar el código a la implementación, cuanto más abstracto más económico será mantener el mismo.

Por eso me preocupa mucho cuando usan funciones que te dicen de que clase es un objeto que recibes, ya que vuelves a caer en los problemas de diseño habituales, cuando aquí habría que usar "el patrón estratégico más importante de la POO", o sea, el polimorfismo.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #15 (permalink)  
Antiguo 24/08/2008, 22:19
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 7 meses
Puntos: 80
Respuesta: ¿Así que PHP5 no adminte multiples constructores?

Type Hinting solo esta disponible cuando son objetos no fuciona con int , string etc
  #16 (permalink)  
Antiguo 25/08/2008, 12:43
Avatar de pablofmorales  
Fecha de Ingreso: abril-2008
Ubicación: Buenos Aires, Argentina, Argentina
Mensajes: 222
Antigüedad: 16 años
Puntos: 37
Respuesta: ¿Así que PHP5 no adminte multiples constructores?

Cita:
Iniciado por enriqueplace Ver Mensaje
De todas formas, sugerencia, no hay que atar el código a la implementación, cuanto más abstracto más económico será mantener el mismo.

Por eso me preocupa mucho cuando usan funciones que te dicen de que clase es un objeto que recibes, ya que vuelves a caer en los problemas de diseño habituales, cuando aquí habría que usar "el patrón estratégico más importante de la POO", o sea, el polimorfismo.
1- Frases como mas abstractos mejor, es erroneo, cuanto mas abstraes, en general mas complejidad tenes y mas dificil es de mantener.
2- Las clases no tienen funciones, a los sumo Metodos
3- El polimorfismo no es un patron, muchos de los patrones que existen basan su idea en el polimorfismo


Algo que si es un patron son la forma en que escribis los comentarios, como citando constantemenete frases de algun libro de por ahi. Lo malo que no parecen tuyas, y muchas veces pecas de sobervio.

Saludos.

Última edición por pablofmorales; 25/08/2008 a las 12:57
  #17 (permalink)  
Antiguo 25/08/2008, 14:09
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: ¿Así que PHP5 no adminte multiples constructores?

Bueno, veo que sale un cangrejo debajo de la piedra....

Me voy a tomar 5 valiosos minutos para responderte, así te das cuenta que pierdes otra oportunidad de escuchar y no hablar sin pensar antes.

Cita:
Iniciado por pablofmorales Ver Mensaje
1- Frases como mas abstractos mejor, es erroneo, cuanto mas abstraes, en general mas complejidad tenes y mas dificil es de mantener.
¿"Erróneo"? (que atrevido), lee sobre principios de diseño y el cálculo de las abstracciones de clases y paquetes (existen fórmulas para calcularlo), ahí se explica claramente qué es lo más conveniente.

Cita:
2- Las clases no tienen funciones, a los sumo Metodos
Comprensión lectora "cero", repito cita: "Por eso me preocupa mucho cuando usan funciones que te dicen de que clase es un objeto que recibes"

Lo comentaba porque mi estimado GatorV (al cual admiro su calidad de código) tiene la costumbre de usar funciones (del lenguaje) como get_class lo cual -en mi opinión y de los libros- es peligroso, ya que empiezas a preguntar si es de tal o cual clase, lo que te lleva a atar tu código "a la implementación" ("es de clase Persona? es de clase Usuario? ... ah, tengo que agregar otro if porque me agregaron una variante más) y no a un "buen diseño" que contenga los "focos de cambio" de todo sistema (Principio de Diseño "Abierto / Cerrado").

Cita:
3- El polimorfismo no es un patron, muchos de los patrones que existen basan su idea en el polimorfismo
El polimorfismo es un "patrón estratégico" (no lo busques en el GOF porque significará que no entendiste la frase).

Cita:
Algo que si es un patron son la forma en que escribis los comentarios, como citando constantemenete frases de algun libro de por ahi. Lo malo que no parecen tuyas, y muchas veces pecas de sobervio.
Evidentemente la única intención de tu participación es pura y llanamente un ataque personal (además de conocerte en personal, he tenido la mala suerte de trabajar con tú codigo, que de objetos no tiene nada).

Consejo:
lee, lee libros (no creas todo lo que hay en Internet, menos copies sin razonar y sin citar, todos los entrecomillados son "citas"), y principalmente, lee libros sobre diseño POO, así no salen las burradas como las que publicas que tanto mal le hacen a los novatos que quieren aprender PHP (que las leen y pueden pensar que son ciertas).

Si lees libros, no cometerás burradas.

... ahí van mis preciados 5 minutos del día.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #18 (permalink)  
Antiguo 25/08/2008, 14:40
Avatar de pablofmorales  
Fecha de Ingreso: abril-2008
Ubicación: Buenos Aires, Argentina, Argentina
Mensajes: 222
Antigüedad: 16 años
Puntos: 37
Respuesta: ¿Así que PHP5 no adminte multiples constructores?

Cita:
Iniciado por enriqueplace Ver Mensaje
Bueno, veo que sale un cangrejo debajo de la piedra....

Me voy a tomar 5 valiosos minutos para responderte, así te das cuenta que pierdes otra oportunidad de escuchar y no hablar sin pensar antes.



¿"Erróneo"? (que atrevido), lee sobre principios de diseño y el cálculo de las abstracciones de clases y paquetes (existen fórmulas para calcularlo), ahí se explica claramente qué es lo más conveniente.

Comprensión lectora "cero", repito cita: "Por eso me preocupa mucho cuando usan funciones que te dicen de que clase es un objeto que recibes"

Lo comentaba porque mi estimado GatorV (al cual admiro su calidad de código) tiene la costumbre de usar funciones (del lenguaje) como get_class lo cual -en mi opinión y de los libros- es peligroso, ya que empiezas a preguntar si es de tal o cual clase, lo que te lleva a atar tu código "a la implementación" ("es de clase Persona? es de clase Usuario? ... ah, tengo que agregar otro if porque me agregaron una variante más) y no a un "buen diseño" que contenga los "focos de cambio" de todo sistema (Principio de Diseño "Abierto / Cerrado").

El polimorfismo es un "patrón estratégico" (no lo busques en el GOF porque significará que no entendiste la frase).

Evidentemente la única intención de tu participación es pura y llanamente un ataque personal (además de conocerte en personal, he tenido la mala suerte de trabajar con tú codigo, que de objetos no tiene nada).

Consejo:
lee, lee libros (no creas todo lo que hay en Internet, menos copies sin razonar y sin citar, todos los entrecomillados son "citas"), y principalmente, lee libros sobre diseño POO, así no salen las burradas como las que publicas que tanto mal le hacen a los novatos que quieren aprender PHP (que las leen y pueden pensar que son ciertas).

Si lees libros, no cometerás burradas.

... ahí van mis preciados 5 minutos del día.
Jjajaja, digna respuesta tuya.

Como siempre pensas que todos somos enriqueplace, asi que respondes como si el que habla fueras vos.

Es gracioso, y mucho este tipo de respuesta.

Primero no se donde sacaste que el polimorfismo es un patron estrategico, si usas la palabra patron en sistemas, te referis a como solucionar problemas de disenio (no tengo las init_us, por eso no uso enies).

No estas validando nada de lo que decis con fuentes concretas, y solo insultas para imponer tu idea.

Suerte Capo. Fijate que hace mucho no participo en este foro, por el exceso de importancia que te dan. Pero hoy no solo participe en este post, sino en otros donde no tenes mensajes ;)

Aprovecha los proximos 5" Valiosos de tu vida para hacer algo con ella. Suerte capo
__________________
blog
  #19 (permalink)  
Antiguo 26/08/2008, 13:17
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 15 años, 11 meses
Puntos: 5
Respuesta: ¿Así que PHP5 no adminte multiples constructores?

Cita:
Iniciado por pablofmorales Ver Mensaje
Primero no se donde sacaste que el polimorfismo es un patron estrategico, si usas la palabra patron en sistemas, te referis a como solucionar problemas de disenio (no tengo las init_us, por eso no uso enies).
Por si no sabías, sí existe un patrón llamado "Polimorfismo". Que no es el mismo tipo de partón que el Singleton, o el Factory, por ejemplo.

La verdad, arruinaste un post interesante con datos erroneos, citas fuera de contexto y ataques infantiles. Espero que con todas las aclaraciones que hicimos, aún le sirva a otro y no se confunda.

Saludos,
Ignacio
__________________
Pasión por la Música
  #20 (permalink)  
Antiguo 26/08/2008, 13:29
Avatar de pablofmorales  
Fecha de Ingreso: abril-2008
Ubicación: Buenos Aires, Argentina, Argentina
Mensajes: 222
Antigüedad: 16 años
Puntos: 37
Respuesta: ¿Así que PHP5 no adminte multiples constructores?

Cita:
Iniciado por chitoso Ver Mensaje
Por si no sabías, sí existe un patrón llamado "Polimorfismo". Que no es el mismo tipo de partón que el Singleton, o el Factory, por ejemplo.

La verdad, arruinaste un post interesante con datos erroneos, citas fuera de contexto y ataques infantiles. Espero que con todas las aclaraciones que hicimos, aún le sirva a otro y no se confunda.

Saludos,
Ignacio
Patrones hay muchos, y con cualquier nombre, el se referia a que el polimorfismo es un patron, y eso es lo erroneo.

No creo haber agredido a nadie, el post de el tiene un tono muchisimo mas alto que el mio, y no veo que hayas dicho nada.

Y creo que cuando alguien dice algo equivocado esta bueno la correccion, porque sino pasa, que cualquiera que lee entra y ve que el polimorfismo es un patron, y se lo cree, y mas si el que lo dice es un consultor it.

Todos nos equivocamos ;), esta bueno marcar los errores. Estamos constantemente aprendiendo y sino fuera asi la vida no tendria sentido. Lo unico es que hay que saber hacer una critica, sin pecar de sobervio.

Saludos
__________________
blog
  #21 (permalink)  
Antiguo 26/08/2008, 14:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ¿Así que PHP5 no adminte multiples constructores?

Realmente este tema no esta llendo a ningún lado si siguen enfocandose en cosas personales.

Cerrado.
  #22 (permalink)  
Antiguo 26/08/2008, 15:05
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
"Polimorfismo, un patrón estratégico"

Para terminar de cerrar la explicación sobre la frase (ya que nuestro moderador se apuró a cerrar el hilo de tan culta discusión ), no me gustaría dejar un tema colgado como este, ya que luego volvemos a desinformar con afirmaciones sin ningún sustento.

Por sentido común no se puede asociar a la palabra "patrón" solo a "diseño" (sistemas), pero tampoco se puede excluir el significado genérico de la palabra para usarla en el contexto del desarrollo de sistemas.

Existen "Patrones de Diseño", pero existen otros "patrones".

Solo con leer la Wikipedia pasa de Patrones de Diseño a sugerir leer GRASP:

Cito:

"En diseño orientado a objetos, GRASP son patrones generales de software para asignación de responsabilidades, es el acrónimo de "General Responsibility Assignment Software Patterns"

Si seguimos más abajo (y repito, también se puede encontrar en libros sobre el tema), dentro de los "patrones" aparece:

Polimorfismo


"Siempre que se tenga que llevar a cabo una reponsabilidad que dependa del tipo, se tiene que hacer uso del polimorfismo."

Nota: retomo el tema porque creo que la explicación permitirá a otros entender que el polimorfismo es un patrón, pero no un patrón de diseño como los que aparecen en el GOF.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #23 (permalink)  
Antiguo 26/08/2008, 18:20
Avatar de pablofmorales  
Fecha de Ingreso: abril-2008
Ubicación: Buenos Aires, Argentina, Argentina
Mensajes: 222
Antigüedad: 16 años
Puntos: 37
Respuesta: "Polimorfismo, un patrón estratégico"

un poco rebuscada la explicacion, sin embargo no explicas porque una clase tiene "funciones"


Y ademas, el comentario sigue siendo, el polimorfismo no es un patron. Si vamos al significado de la palabra patron, dice multiples formas. Y sigo con el argumento, que no sos claro. Por que si yo te digo ahora, que php es un patron en este contexto es erroneo, como lo es tu definicion de polimorfismo.
__________________
blog
  #24 (permalink)  
Antiguo 27/08/2008, 07:48
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: "Polimorfismo, un patrón estratégico"

GatorV, ahora sí podés cerrar este hilo porque ya no tiene remedio!
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #25 (permalink)  
Antiguo 27/08/2008, 08:59
 
Fecha de Ingreso: agosto-2008
Mensajes: 1
Antigüedad: 15 años, 8 meses
Puntos: 0
"Polimorfismo, un patrón estratégico"

Enrique,

Tendrias que leer el libro Design Patterns de GoF [1] (en inglés obligatorio).

Mas alla de patrones de diseño o no patrones de diseño, la etimologia de patron refiere a algo que se repite y por repeticion uno generaliza con un nombre conceptual.

El polimorfismo es un feature del paradigma de objetos, no es un patron, es algo buscado, deseado y se usa de manera arbitraria.

La unica relacion que veo entre patron, estrategia y polimorfismo es el patron strategy [2], ¿sera que te estas confundiendo con eso?

¿O sera que te parece patron por que se usa mucho? pero bue, en ese es por que el paradigma de objetos te dice "Usa polimorfismo!!"
No me parece que se pueda considerar como patron el uso de features (no en este contexto, por ahi en el de neural nets [3] si, sobre todo [4], pero es irse demasiado por las ramas ya)


[1] http://en.wikipedia.org/wiki/Design_Patterns
http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612

[2] http://en.wikipedia.org/wiki/Strategy_pattern

[3] http://en.wikipedia.org/wiki/Neural_network
http://www.amazon.com/Neural-Networks-Pattern-Recognition-Christopher/dp/0198538642

[4] http://en.wikipedia.org/wiki/Self-organizing_map


Gerardo Romay
  #26 (permalink)  
Antiguo 27/08/2008, 12:36
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: "Polimorfismo, un patrón estratégico"

Lo conozco y lo he leído, ahora mi pregunta es... leiste la parte que dice "GRASP"?

Tengo muy claro los patrones de diseño y qué es el polimorfismo, y no me baso en solo la Wikipedia para hablar.

El término es usado por más de un escrito o persona, y lo he llegado a escuchar en más de un curso o charla en mis años que llevo en esto.

¿Cual es el verdadero punto? ¿cual es tú verdadero punto? No voy a entrar a discutir juegos de palabras, si no te gusta el término, corrije la wikipedia y algún libro más sobre el tema y te copio algún mail de un par de docentes de universidades que también acuñan el término una y otra vez.

Todos nos podemos equivocar, pero no es el caso, y creo que la explicación fue más que clara.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 03:48.