Si está hablando de la Ley de Demeter como en, "no llame a los vecinos de los vecinos" puede delegarlo a otros métodos que hacen lo que quiere.
Según su ejemplo, supongo que desea restablecer el valor de rendimiento o algo así. Puede modificar el código de ejemplo para que se encadenan inherentemente lugar:
Category cat = new Category();
cat.resetPerf();
el código sería algo parecido a esto:
public class BigPerformance
{
//constructors 'n stuff
public static decimal DEFAULT;
public decimal Value {get; private set;}
public void reset() {
Value = BigPerformance.DEFAULT;
}
}
public class Performance
{
//constructors 'n stuff
private BigPerformance BigPerf {get; set};
public reset() {
BigPerf.reset();
}
}
public class Category
{
// constructors 'n stuff
public Performance Perf {get; private set;}
public resetPerformance() {
Perf.reset();
}
}
De esta manera la clase Category
no necesita saber cómo restablecer el valor en caso de que el valor predeterminado sea algo diferente o su tipo se modifique en el futuro.
Personalmente si el riesgo de cambio es bajo, iría por juharr's answer en su lugar.
Esto es incorrecto; ver la respuesta de Chris S http://stackoverflow.com/questions/2666930/how-to-modify-code-so-that-it-adheres-to-the-law-of-demeter/2667019#2667019 – Spoike
Getter de la propiedad es un método –