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

PHP OO Dilema de OOP

Estas en el tema de Dilema de OOP en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Supongamos una clase "A" Ahora, supongamos una instancia de la clase "A" que contiene 2 metodos: - Metodo1: para iniciar una actividad - Metodo2: para ...
  #1 (permalink)  
Antiguo 27/01/2011, 14:43
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 18 años, 4 meses
Puntos: 19
Dilema de OOP

Supongamos una clase "A"

Ahora, supongamos una instancia de la clase "A" que contiene 2 metodos:
- Metodo1: para iniciar una actividad
- Metodo2: para acceder al estado seteado por Metodo1 al finalizar su tarea

Bien, ahora, este objeto de la clase "A" es instanciado por el sistema y el mismo ejecuta en algun momento a Metodo1.
Pues ahora el usuario, recibe la instancia de "A" en otro punto del sistema a traves de un argumento en una funcion para poder utilizar la instancia dentro de esta funcion. Pero, solo deseo que el metodo que este disponible para el usuario sea Metodo2, ya que, si llamara nuevamente a Metodo1, seria erroneo...

Mi duda es, que forma correcta hay de diagramar este tipo de situaciones, para abstraer lo que es del usuario y lo que es del sistema... (por mas que ambas cosas pertenezcan a un "mismo objeto")
  #2 (permalink)  
Antiguo 27/01/2011, 15:27
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Dilema de OOP

quizá a lo que te refieres es un tipo de control de acceso, restringir el uso de ciertos métodos a ciertos usuarios...

bueno, si es así eso no se logra en la definición del objeto, no es posible... para conseguirlo tendrás que hacer uso de un poco de lógica de aplicación...

o también podrías hacer uso de los keywords de visibilidad, aunque sin saber como realizas exactamente tu implementación sería impredecible dicho comportamiento...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 27/01/2011, 23:15
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 18 años, 4 meses
Puntos: 19
Respuesta: Dilema de OOP

EL tema viene cuando laburas con algunos editores que por ejemplo muestran todos los metodos publicos de un objeto! entonces... ahi es donde uno dice "pucha", yo quisiera que solo figuren los publicos que el programador necesita ver, y no los usados por el sistema! Para lo cual solo se me ocurre crear una clase para el sistema y una clase para el programador, y los datos comunes que sean compartidos de alguna manera entre ambas, pero sin entero del programador que esta utilizando esto..
Ahora... tiene logica hacer algo asi ???
  #4 (permalink)  
Antiguo 27/01/2011, 23:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Dilema de OOP

Creo te estas sobreliando un poco, si estas entregando código fuente para el programador, no hay límites, ya que el mismo programador podría cambiar esos métodos, ahí lo único como "restricción" que puedes hacer es a nível documentación, indicarle al programador que no debe de ejecutar tal y tal función ya que bloquear de otra forma no es posible, ya que el programador puede ir y modificar tu clase base.

Mejor límitate a indicar en la documentación como debe de ser el flujo y así el programador de todos modos tiene la decisión de apegarse o no al diseño de la documentación.
  #5 (permalink)  
Antiguo 28/01/2011, 18:48
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 21 años, 6 meses
Puntos: 60
Respuesta: Dilema de OOP

Oh en todo caso puedes crear unos webservices que en realidad creo que es lo que estas buscando. así solo dejas que el programador "consuma" los metodos que tiene destinados para ello.

http://es.wikipedia.org/wiki/Represe...State_Transfer
__________________
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
  #6 (permalink)  
Antiguo 28/01/2011, 19:38
 
Fecha de Ingreso: noviembre-2010
Mensajes: 42
Antigüedad: 14 años
Puntos: 2
Respuesta: Dilema de OOP

Algo Asi?

<?
class korg1988 {

atributoA="hola";

private function metodoA(){

return $this->atributoA."otra";

}


public function metodoB(){

if($this->metodoA()=="holaotra") return $this->metodoA();

else return "ya se habia ejecutado antes el metodoA";


}
?>

Etiquetas: oop
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 14:26.