Ver Mensaje Individual
  #20  
Antiguo 29-03-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Está claro que el método GET puede alterar las variables internas pero sin embargo mamcx tiene razón.

Al inicio de esta discusión Ohcan escribe:

Cita:
Empezado por Ohcan
Si no son iguales..... tengo 2 opciones:
1. Poner el estado de mi variable = al real
2. al revés, forzar al teléfono a ponerse en el estado que marca la variable.
Yo he elegido la segunda opción (porque el usuario no debería tocar nada).
Lo que pasa es que "me se" ocurrió forzarlo en el propio Get... y "me sonó raro". Me resulta algo así como "contraintuitivo" (mira que soy pedante)... y por eso os preguto vuestra opinión (no porque no me funcione, sino porque el saber no ocupa lugar )
Por otra parte lo que Marteens dice, en esencia, es:

Código:
function GetPropiedad: Tipo;
begin
  Calculos; // "muchos" cálculos que determinan FPropiedad
  Result := FPropiedad;
end;
Es decir, para determinar el valor de una propiedad se hacen cuantas llamadas a otros métodos sean necesarios para calcular el valor correcto.

Esto debiera ser claro paro todos (sólo que a Marteens le encanta filosofar), es la esencia de los métodos GET. De lo contrario, como dice marto, nos bastaría leer directamente el valor de FPropiedad.

Pero, de las dos posibles soluciones que plantea Ohcan, lo que dice Marteens (y cualquier libro de OO) corresponde a la primera, no a la segunda, que es la que Ohcan desea.

El mismo Ohcan admite

Cita:
Empezado por Ohcan
Mi duda está realmente en el concepto (porque el código, funcioar, funciona). Es decir, en un "sitio" donde recupero un valor... lo cambio también (y antes de devolverlo)... ¿¿??
El problema no está, de hecho, en cambiar el valor de FEstado, en realidad no lo está cambiando- el método SET usado en GET le asigna el que originalmente tenía. La confusión radica en el hecho de estar cambiando el estado del aparato físico desde el método GET. Como Ohcan dice, funcionar, funciona, pero...

Y ese pero lo molestará en un par de semanas o meses cuando tenga que revisar el código porque no es lógico.

// Saludos
Responder Con Cita