Est-il préférable de stocker vos informations dans une classe mère seule ou une classe statique centrale

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

Question

Je me demande ce qui est une meilleure façon de stocker des informations? Une classe statique centrale ou dans une classe parente?

Le code pour la façon dont je stocke maintenant. J'instancier une nouvelle classe à chaque fois.

Classe parent:

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

     }

Child:

public partial class frmUpdatePay : Form
{
    private frmEmployeeManager ParentEmployeeManager;

    public frmUpdatePay(frmEmployeeManager EmployeeManager)
    {
        InitializeComponent();
        ParentEmployeeManager = EmployeeManager;
    }
            AddPersonParent.updatePay(fltPayInput, intID);
}
Était-ce utile?

La solution

Prendre un coup de poignard dans l'obscurité (puisque je ne sais pas exactement ce que vous essayez d'accomplir), je ferais une classe instanciée et utiliser un modèle singleton.

Autres conseils

Personnellement, je (et faire) utiliser une classe statique centrale. Les deux choix les principes de briser OO, mais au moins l'approche centrale classe statique doens't exposer le fonctionnement interne de mes formes à l'extérieur.

J'ai eu moi-même des ennuis avant quand j'utilisé une liste statique qui a tenu le « état » de chose, et je me suis trouvé en ajoutant des fonctions statiques à « claire » ou « mise à jour » la liste, etc. J'ai donc appris à ne utiliser des classes ou des listes ou des variables pour des choses qui sont, bien, static-- qui ne changent pas.

Si vous souhaitez conserver des objets dans la liste qui peuvent changer, j'emprunter la voie instancié.

Mise à jour

Maintenant que je vois votre liste est une liste des employés, la conversion à un statique fait, fondamentalement, il est une variable globale. Les variables globales ne sont pas bonnes. J'ai trouvé cette réponse qui résume assez bien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top