Me gustaría saber su opinión sobre qué tan lejos llegar con los colorantes sin efectos secundarios.Enfoque para los emisores libres de efectos secundarios
Consideremos el siguiente ejemplo:
Activity activity;
activity.Start = "2010-01-01";
activity.Duration = "10 days"; // sets Finish property to "2010-01-10"
nota que los valores de fecha y duración se muestran sólo a título indicativo.
Así, utilizando setter para cualquiera de las propiedades Start
, Finish
y Duration
por consiguiente va a cambiar otras propiedades y por lo tanto no puede considerarse lateral libre efecto. Lo mismo se aplica a las instancias de la clase Rectangle
, donde setter para X
está cambiando los valores de Top
y Bottom
y así sucesivamente.
La pregunta es dónde se trazaría una línea entre el uso de setters, que tienen efectos secundarios de valores cambiantes de propiedades lógicamente relacionadas, y el uso de métodos, que de todos modos no podrían ser mucho más descriptivos. Por ejemplo, definir un método llamado SetDurationTo(Duration duration)
tampoco refleja que se modifique el Inicio o el Final.
Gracias, esto es lo que estaba buscando y nunca se me ocurrió el "efecto secundario" "setter libre" en realidad no es posible ya que cambiará el estado. Y como usted señaló, el CLR se traducirá al método de todos modos. – Martin
Sí, el efecto secundario de un colocador es establecer * la variable miembro a la que se refiere *.Pero un efecto secundario adicional es modificar * otras * variables miembro. –
Estaba pensando en lo mismo e incluso diría que la configuración de la variable miembro no es un efecto secundario, sino el efecto deseado del colocador. El cambio de otras variables miembro es un efecto secundario. – Martin