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

porque no definir todos los metodos como estaticos?

Estas en el tema de porque no definir todos los metodos como estaticos? en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a todos: Tengo una duda que me surgió con respecto de los métodos estaticos. que desventaja tendria con respecto de un método tradicional, es ...
  #1 (permalink)  
Antiguo 29/12/2009, 14:38
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 10 meses
Puntos: 35
porque no definir todos los metodos como estaticos?

Hola a todos:
Tengo una duda que me surgió con respecto de los métodos estaticos.
que desventaja tendria con respecto de un método tradicional, es más no tengo que crear objetos.
¿Porque no uso solo metodos estaticos?

Gracias!
__________________
I am Doyle please insert code.
  #2 (permalink)  
Antiguo 29/12/2009, 15:21
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 20 años, 11 meses
Puntos: 60
Respuesta: porque no definir todos los metodos como estaticos?



Los métodos estáticos tiene un fin y no son una solución pensada en objetos, al hacer un método estatico estas utilizando solo ese metodo como una función más y no como una "entidad" que servira para comunicarse con otras entidades, si lo vemos como tu lo estas mirando estas desperdiciando el poder de la orientación a objetos y en ese caso la programación estructurada y en funciones es lo que tu necesitas, los objetos son más que simples repositorios de funciones, es programar de una manera distinta, es pensar distinto, a parte en teoría los atributos estáticos son así como digamos una variable global dentro de la clase y que compartirían todos las instancias de dicho tipo de objeto.

Ejemplo:

Código PHP:
class Persona{
     private static 
$_nombre '';
     public static function 
setNombre($n){
     
self::$_nombre $n;
}

Ahora puedes hacer esto y es totalmente valido.

Código PHP:
Persona::setNombre('Oscar'); 
y Si vuelvo a hacer esto?

Código PHP:
Persona::setNombre('Juan'); 
Siempre vas a trabajar sobre la misma variable y dejas a un lado la importancia de la creación de instancias y envio de mensajes entre objetos.

No debes de ver las clases como repositorios de funciones.
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #3 (permalink)  
Antiguo 29/12/2009, 16:25
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: porque no definir todos los metodos como estaticos?

Cita:
Iniciado por doylelives Ver Mensaje
que desventaja tendria con respecto de un método tradicional, es más no tengo que crear objetos.
Y por lo tanto, no estarás programando orientado a objetos; pierde todo sentido. Estarías utilizando clases para una programación estructurada.

Un saludo
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 29/12/2009, 16:51
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 20 años, 11 meses
Puntos: 60
Respuesta: porque no definir todos los metodos como estaticos?



Jajaja jam1138 dijiste todo lo que queria decir en un frase yeah!!
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #5 (permalink)  
Antiguo 29/12/2009, 19:57
 
Fecha de Ingreso: noviembre-2007
Ubicación: Lanus, Buenos Aires
Mensajes: 178
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: porque no definir todos los metodos como estaticos?

Cita:
Iniciado por _ssx Ver Mensaje
No debes de ver las clases como repositorios de funciones.
a mi me gusto esta frase
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 18:31.