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

Tener una clase con muchos métodos es "pesado"?

Estas en el tema de Tener una clase con muchos métodos es "pesado"? en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, me podrían decir si una clase que posea quintillones de métodos, consuma muchos recurso aunque sólo se utilicen unos pocos de la misma? es ...
  #1 (permalink)  
Antiguo 24/11/2010, 19:31
 
Fecha de Ingreso: mayo-2010
Mensajes: 104
Antigüedad: 13 años, 10 meses
Puntos: 0
Tener una clase con muchos métodos es "pesado"?

Hola, me podrían decir si una clase que posea quintillones de métodos, consuma muchos recurso aunque sólo se utilicen unos pocos de la misma? es decir, si poseo una clase de trabajo donde hay muchos procedimientos diferentes para todo el proyecto pero sólo utilizo 2 métodos por proceso... consumirá más que una clase que sólo tenga esos 2 métodos?

Muchas gracias!
Saludos
  #2 (permalink)  
Antiguo 24/11/2010, 20:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Tener una clase con muchos métodos es "pesado"?

no, de ninguna forma es "pesada" una clase con bastantes métodos...

lo que si es malo es lo ridículo de meter quintillones de métodos si solo vas a usar dos, eso va en contra de los principios del OOP... así que hacerlo así sería un tontería... ¿no te parece?

finalmente al compilador de PHP no le importa como hagas tus objetos, así que desde esa perspectiva no te preocupes...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 25/11/2010, 09:26
 
Fecha de Ingreso: mayo-2010
Mensajes: 104
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Tener una clase con muchos métodos es "pesado"?

jeje, daba un ejemplo de los quintillones para el caso de hacer una clase que si bien use 2 o 3 metodos por proceso, todos los de esta sean utilizados en diferentes procesos... osea me parece algo común ^^

cada proceso puede tomar pocos métodos pero seguramente una sitio web no se basa en un proceso único para hacer todo ^^

Muchas gracias!
  #4 (permalink)  
Antiguo 25/11/2010, 10:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Tener una clase con muchos métodos es "pesado"?

Cita:
Iniciado por Leganz Ver Mensaje
[...] hacer una clase que si bien use 2 o 3 metodos por proceso, todos los de esta sean utilizados en diferentes procesos... osea me parece algo común [...]
mira, una clase no debe ser usada como colección de funciones... osea, de verdad es tonto tener 10 métodos distintos cuando solo se usarían 2 o 3...

debes aprender a agrupar coherentemente los objetos por su funcionalidad, si cada ves que usas dichas clases solo empleas menos del 60% entonces estas cometiendo un grave error, de verdad... vuelve a leer el manual!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 26/11/2010, 18:46
 
Fecha de Ingreso: mayo-2010
Mensajes: 104
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Tener una clase con muchos métodos es "pesado"?

che pero qué pasa si por ejemplo tengo la clase "usuario" y con esa controlo las acciones del usuario.. osea n ocreo que el usuario haga todo l oque puede hacer junto... me imagino que esas funciones van juntas en la misma clase aunque no las use en el mismo momento.. o no sé jejeje
  #6 (permalink)  
Antiguo 28/11/2010, 00:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Tener una clase con muchos métodos es "pesado"?

Lee un poco sobre el diseño de clases, si tu clase tiene más de 10 métodos, es mejor hacer lo que se conoce como Refactoring, que es hacer ingeniería en tu clase para definir responsabilidades.
  #7 (permalink)  
Antiguo 28/11/2010, 05:07
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 4 meses
Puntos: 890
Respuesta: Tener una clase con muchos métodos es "pesado"?

Supongo que Leganz habla de un supuesto caso en que a alguien se le ocurre crear 10 millones de métodos y guardarlos en una sola clase(lease en un solo archivo). Algo muy loco pero que he visto muchas veces(no al nivel de que sean 10 millones pero si muchos).

No se como maneja los recursos PHP, pero supongo que tendrá un aumento considerable de consumo de recursos ya que estarías cargando toda la clase completa y sus 10 millones de métodos estando a al espera de consumir alguno. Es lo que imagino. Quizas alguien podría aclarar esto. Acá trabajaría el Garbage Collector de PHP?
__________________
Drupal Argentina
  #8 (permalink)  
Antiguo 28/11/2010, 12:16
 
Fecha de Ingreso: mayo-2010
Mensajes: 104
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Tener una clase con muchos métodos es "pesado"?

ojalá que php sea tan listo como para solo cargar métodos cuando hay relación directa entre ellos jeje.

pero osea, no me queda claro como hacer una clase bien optimizada...

es decir, si tengo la clase "funciones de usuario" y ahi hago que todas las cosas como eliminar resultados de x tabla, actualizar x dato, insertar x cosa, cargar x archivo, cargar x formulario... suponiendo que cada cosa tome 2 metodos en la clase porque por algún motivo son solo 2. si yo subo un archivo soloo estaría utilizando 2 métodos de todos los que compondrían la clase... lo veo algo común.. estoy usando 2 de 10 pero lo veo necesario... no lo veo mal... cómo optimizo algo que me parece tan básico ?

Muchas gracias!
Saludos
  #9 (permalink)  
Antiguo 28/11/2010, 23:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Tener una clase con muchos métodos es "pesado"?

Si tu clase tiene 10 millones de métodos, PHP va a cargar todos y compilar tu archivo y dejarlo en memoria en forma "compilada" luego al ejecutar es donde vas a ver cuantos recursos va a utilizar, aunque tengas 10 millones de métodos, solo va a ejecutar los que vas a mandar llamar.

Respecto a tu segunda duda, como te digo lee sobre el diseño de clases, si tus clases son tan específicas, casi siempre puedes crear otra clase que sea encargada del manejo de X cosa (por ejemplo acceso a BD), luego otra clase para los formularios, etc. No es necesario que todo lo tengas dentro de tu clase principal.

Ejemplo supongamos que en tu clase "usuarios" tienes el método para crear formularios, es mejor que tengas una clase formulario, y luego una clase "formulario_usuario" que extienda a la clase formulario y dibuje el formulario.

Cosas por el estilo siempre puedes hacer Refactoring de tu código ir haciendo las clases de forma mucho más optimizada y no re-escribir código.

Saludos.
  #10 (permalink)  
Antiguo 29/11/2010, 11:45
 
Fecha de Ingreso: mayo-2010
Mensajes: 104
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Tener una clase con muchos métodos es "pesado"?

Buenisimo, me sirvió de mucho este post :D

Muchas gracias a todos, suerte!

Saludos :)
  #11 (permalink)  
Antiguo 08/12/2010, 00:07
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 15 años, 9 meses
Puntos: 53
Mensaje Respuesta: Tener una clase con muchos métodos es "pesado"?

Cita:
Iniciado por Leganz Ver Mensaje
ojalá que php sea tan listo como para solo cargar métodos cuando hay relación directa entre ellos jeje.

pero osea, no me queda claro como hacer una clase bien optimizada...

es decir, si tengo la clase "funciones de usuario" y ahi hago que todas las cosas como eliminar resultados de x tabla, actualizar x dato, insertar x cosa, cargar x archivo, cargar x formulario... suponiendo que cada cosa tome 2 metodos en la clase porque por algún motivo son solo 2. si yo subo un archivo soloo estaría utilizando 2 métodos de todos los que compondrían la clase... lo veo algo común.. estoy usando 2 de 10 pero lo veo necesario... no lo veo mal... cómo optimizo algo que me parece tan básico ?

Muchas gracias!
Saludos
Antes que todo, perdón que me involucre un poco.

Los procesos que nombras no tienen sentido ubicarlos en tu famosa clase "funciones de usuario", hacen parte de una interfaz donde se definen las características de una clase de consultas (queries), más no del usuario o de sus funciones. Hacer lo que mencionas atenta contra la entidad de la clase...

Un ejemplo de los que acostumbro a regalar:

Tú como ente tienes propiedades, a su vez supongamos (desde el mismo sitio que llegan tus suposiciones) que tuvieras una acción comprar, esa acción comprar la puedes hacer en el lugar que tú simplemente elijas, más no siempre en la misma tienda.

Etiquetas: clase, muchos
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:27.