È meglio archiviare le tue informazioni in una classe genitore single o in una classe statica centrale

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

Domanda

Mi chiedo quale sia un modo migliore per archiviare informazioni? Una classe statica centrale o in una classe genitore?

Il codice per il modo in cui lo sto memorizzando ora. Istanismo ogni volta una nuova classe.

Classe genitore:

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();
        }

     }

Classe per bambini:

public partial class frmUpdatePay : Form
{
    private frmEmployeeManager ParentEmployeeManager;

    public frmUpdatePay(frmEmployeeManager EmployeeManager)
    {
        InitializeComponent();
        ParentEmployeeManager = EmployeeManager;
    }
            AddPersonParent.updatePay(fltPayInput, intID);
}
È stato utile?

Soluzione

Prendendo una pugnalata al buio (dal momento che non so esattamente cosa stai cercando di realizzare), farei una classe istanziata e userei uno schema singleton.

Altri suggerimenti

Personalmente vorrei (e farei) una classe statica centrale. Entrambe le scelte rompono i principi OO, ma almeno l'approccio della classe statica centrale non espongono il funzionamento interno delle mie forme all'esterno.

Mi sono già messo nei guai prima quando ho usato un elenco statico che conteneva lo "stato" di cose e mi sono ritrovato ad aggiungere funzioni statiche a "cancellare" o "aggiornare" l'elenco, ecc. Quindi ho imparato a usare solo le classi statiche o elenchi o variabili per cose che sono, beh, statiche-non cambiando.

Se stai mantenendo oggetti nell'elenco che possono cambiare, seguirei il percorso istanziato.

Aggiornato

Ora che vedo che il tuo elenco è un elenco dei dipendenti, convertendolo in un statico sostanzialmente rende una variabile globale. Le variabili globali non sono buone. Ho trovato questa risposta che Riassumi abbastanza bene.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top