Лучше хранить вашу информацию в одном родительском классе или в центральном статическом классе - PullRequest
0 голосов
/ 14 июня 2011

Мне интересно, какой способ хранения информации лучше? Центральный статический класс или родительский класс?

Код для того, как я его сейчас храню. Я создаю новый класс каждый раз.

Родительский класс:

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

     }

Детский класс:

public partial class frmUpdatePay : Form
{
    private frmEmployeeManager ParentEmployeeManager;

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

Ответы [ 3 ]

3 голосов
/ 14 июня 2011

Взяв удар в темноте (поскольку я точно не знаю, чего вы пытаетесь достичь), я бы создал экземпляр класса и использовал бы шаблон синглтона.

1 голос
/ 14 июня 2011

Лично я бы (и делал) использовать центральный статический класс.Оба варианта нарушают принципы ОО, но, по крайней мере, подход с использованием центрального статического класса не раскрывает внутреннюю работу моих форм снаружи.

1 голос
/ 14 июня 2011

Раньше у меня возникали проблемы, когда я использовал статический список, в котором содержалось «состояние» вещей, и обнаружил, что добавляю статические функции для «очистки» или «обновления» списка и т. Д. Поэтому я научился толькоиспользуйте статические классы или списки или переменные для вещей, которые, ну, в общем, статические - не меняются.

Если вы сохраняете в списке объекты, которые могут измениться, я бы пошел по инстанцированному маршруту.

Обновлено

Теперь, когда я вижу, что ваш список является списком сотрудников, его преобразование в статическое состояние делает его глобальной переменной.Глобальные переменные не хороши.Я нашел этот ответ, который обобщает его довольно хорошо.

...