Ist es besser, Ihre Informationen in einer einzigen Elternklasse oder einer zentralen statischen Klasse zu speichern

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

Frage

Ich frage mich, was ein besserer Weg ist, um Informationen zu speichern? Eine zentrale statische Klasse oder in einer übergeordneten Klasse?

Der Code für die Art und Weise, wie ich ihn jetzt speichere. Ich stelle jedes Mal eine neue Klasse ein.

Elternklasse:

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

     }

Kinderklasse:

public partial class frmUpdatePay : Form
{
    private frmEmployeeManager ParentEmployeeManager;

    public frmUpdatePay(frmEmployeeManager EmployeeManager)
    {
        InitializeComponent();
        ParentEmployeeManager = EmployeeManager;
    }
            AddPersonParent.updatePay(fltPayInput, intID);
}
War es hilfreich?

Lösung

Wenn ich einen Stich im Dunkeln mache (da ich nicht genau weiß, was Sie erreichen wollen), würde ich eine sofortige Klasse erstellen und ein Singleton -Muster verwenden.

Andere Tipps

Persönlich würde (und tun) ich eine zentrale statische Klasse verwenden. Beide Auswahlmöglichkeiten brechen die OO -Prinzipien, aber zumindest der Central Static Class -Ansatz enthüllen das Innenleben meiner Formen nicht nach außen.

Ich habe mich schon einmal in Schwierigkeiten geraten, als ich eine statische Liste verwendet habe, die den "Zustand" der Dinge enthielt, und ich fügte fest oder Listen oder Variablen für Dinge, die statisch sind-nicht kürzer.

Wenn Sie Objekte in der Liste aufbewahren, die sich ändern können, würde ich die sofortige Route gehen.

Aktualisiert

Jetzt, da ich Ihre Liste sehe, ist es eine Mitarbeiterliste, sie in eine statische Umwandlung zu einer globalen Variablen zu konvertieren. Globale Variablen sind nicht gut. Ich fand diese Antwort welche fasst es ziemlich gut zusammen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top