Ver Mensaje Individual
  #28  
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
marto, ¡qué flojo! Esto que describes, que algunos llaman "lazy construction" sigue correspondiendo al modelo:

Calculos;
Result := FPropiedad;

Y los cálculos pueden modificar otras propiedades privadas del objeto, tal como lo hace Marteens por razones de eficiencia básicamente ya que otras propiedades hacen uso de los mismos valores.

Pero aquí se está modificando un aparato externo a fin de cuentas y es lo que es al menos un poco raro. Es algo como:

Código:
function TTelefono.Get: TEstado;
begin
  Result := FEstado;
  DispositivoFisico.Estado := FEstado;
end;
Y es la segunda asignación la que es extraña. En la lógica subyacente se esta escribiendo una propiedad en la lectura de otra (no una variable, una propiedad). Sí, esto es lo que Marteens hace referencia con el principio de Incertidumbre. Y es quizá adecuado para modificar variables internas del objeto a fin de evitar recálculos innecesarios, pero el hecho de que en la física haya tal incertidumbre no significa que debamos, además, crear más incertidumbre en nuestras aplicaciones.

// Saludos
Responder Con Cita