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