¿Es mejor almacenar su información en una clase madre soltera o en una clase estática central?

StackOverflow https://stackoverflow.com/questions/6346344

Pregunta

Me pregunto cuál es una mejor manera de almacenar información. ¿Una clase estática central o en una clase madre?

El código de la forma en que lo estoy almacenando ahora. Instanciaro una nueva clase cada vez.

Clase de padres:

public partial class frmEmployeeManager: Form
    {
        List<Employee> lstEmployees = List<Employee>();
        public frmEmployeeManager()
        {
            InitializeComponent();
        }
        public void updatePay(float Pay, int ID)
        {
            //Where ID = ID change the Pay
            //(Omitted the foreach loop here for brevity)
        }
        private void btnDisplayData_Click(object sender, EventArgs e)
        {
             frmUpdatePay dlgUpdatePay = new frmUpdatePay(this);
             dlgUpdatePay.ShowDialog();
        }

     }

Clase infantil:

public partial class frmUpdatePay : Form
{
    private frmEmployeeManager ParentEmployeeManager;

    public frmUpdatePay(frmEmployeeManager EmployeeManager)
    {
        InitializeComponent();
        ParentEmployeeManager = EmployeeManager;
    }
            AddPersonParent.updatePay(fltPayInput, intID);
}
¿Fue útil?

Solución

Tomando una puñalada en la oscuridad (ya que no sé exactamente lo que está tratando de lograr), sería una clase instanciada y usaría un patrón de singleton.

Otros consejos

Personalmente, utilizaría (y lo haré) una clase estática central. Ambas opciones rompen los principios OO, pero al menos el enfoque de clase estática central no expone el funcionamiento interno de mis formas al exterior.

Me he metido en problemas antes cuando usé una lista estática que contenía el "estado" de las cosas, y me encontré agregando funciones estáticas para "claro" o "actualizar" la lista, etc. Así que aprendí a usar solo clases estáticas o listas o variables para cosas que son, bueno, estáticas, no cambiantes.

Si mantiene objetos en la lista que pueden cambiar, seguiría la ruta instanciada.

Actualizado

Ahora que veo que su lista es una lista de empleados, convertirla en una estática básicamente hace que sea una variable global. Las variables globales no son buenas. Encontré esta respuesta que lo resume bastante bien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top