Diseño de clases estáticas
Las clases estáticas son clases que no contienen miembros de instancia distintos de los heredados de Object y no tienen un constructor al que se puede llamar. Las instrucciones siguientes ayudan a garantizar que sus clases estáticas están correctamente diseñadas.
Utilice las clases estáticas con moderación.
No trate las clases estáticas como un depósito para elementos variados.
La clase Environment es un ejemplo bueno del uso apropiado de una clase estática. Esta clase proporciona acceso a información sobre el entorno de usuario actual.
No declare ni reemplace miembros de instancia en clases estáticas.
Si el diseño de una clase sugiere que debería haber miembros de instancia, la clase no se debería marcar como estática.
Declare las clases estáticas como selladas y abstractas, y agregue un constructor de instancia privada, si su lenguaje de programación no tiene compatibilidad integrada de clases estáticas.
Portions Copyright 2005 Microsoft Corporation. Reservados todos los derechos.
Portions Copyright Addison-Wesley Corporation. Reservados todos los derechos.
Para obtener más información sobre las directrices de diseño, consulte el libro titulado "Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries" de Krzysztof Cwalina y Brad Abrams, publicado por Addison-Wesley, 2005.
Vea también
{
public double Nivel { get; private set; }
public int Alarma { get; private set; }
public double Carga;
public double LimiteInferior;
public Deposito(double Nivel = 50, double LimiteInferior = 25)
{
this.Nivel = Nivel;
this.LimiteInferior = LimiteInferior;
this.Carga = Nivel;
this.Alarma = 0;
}
private void Estado(double anterior)
{
if (this.Nivel < this.LimiteInferior && anterior >= this.LimiteInferior)
Alarma++;
}
public void Llenar()
{
this.Rellenar(100 - this.Nivel);//pasamos a rellenar solo lo que necesita para estar lleno el deposito
}
public void Rellenar(double cantidad)
{
if (this.Nivel + cantidad > 100)
{
Carga = 100 - this.Nivel;
this.Nivel = 100;
}
else
{
Carga = cantidad;
this.Nivel += cantidad;
}
}
public void Vaciar()
{
this.Extraer(this.Nivel);
}
public void Extraer(double cantidad)
{
double anterior = this.Nivel;
if (this.Nivel - cantidad < 100)
this.Nivel = 0;
else
this.Nivel -= cantidad;
Estado(anterior);
}
public double UltimaCarga()
{
return Carga;
}
public override string ToString()
{
StringBuilder dep = new StringBuilder();
dep.AppendLine(String.Format("Estado del deposito;"));
dep.AppendLine(String.Format(" -Nivel------------{0,6}", this.Nivel));
dep.AppendLine(String.Format(" -Alarma-----------{0,6}", this.Alarma));
dep.AppendLine(String.Format(" -Ultima Cargar----{0,6}", this.UltimaCarga()));
dep.AppendLine(String.Format(" -Limite inferior--{0,6}", this.LimiteInferior));
return dep.ToString();
}
}
- 23/05/2012
- ponchi_89