2013-11-20 6 views
0

Использование C# - WinForms, .net Framework 4.5, VS 2012Каков наилучший способ управления данными между классами?

Попробуйте создать небольшое приложение с некоторой сущностью. создать отдельный класс для моего лица и поставить простой код внутри:

public class Car 
{ 
    public string Color {get; set;} 
    public string Make { get; set; } 
    public string CarModel { get; set; } 
} 

Тогда из основной формы я создать несколько экземпляр класса Car (создание может быть geted, нажав кнопку на главной форме, после нажатия новой формы с 3 текстовых поля будут открыты, если введенная информация и кнопка Ok щелкнули - новый образец Car должен быть создан и возвращен в основную форму).

Для этого я пытаюсь использовать следующий код:

public Car myCar = new Car(); 
    private void buttonAdd_Click(object sender, EventArgs e) 
    { 
     myCar.Color = textBoxColor.Text; 
     myCar.Make = textBoxMake.Text; 
     myCar.CarModel = textBoxModel.Text; 
     this.DialogResult = DialogResult.OK; 
     this.Close(); 
     MessageBox.Show("Added"); 
     this.Close(); 
    } 

Для перемещения данных из новой формы в главную форму я использую открытое поле public Car myCar = new Car();, но это не самый лучший способ сделать это, в связи с использованием public поле.

Другим способом я нашел - в главной форме создать следующий метод

static List<Car> carInStock = null; 
    public static void myCar(string color, string make, string model) 
    { 
     Car myCar = new Car 
     { 
      Color = color, 
      CarModel = model, 
      Make = make 
     }; 
     MainForm.carInStock.Add(myNewCar); 
    } 

и кнопки можно использовать метод, как:

private void buttonAdd_Click(object sender, EventArgs e) 
    { 
     MainForm.myCar(textBoxColor.Text, 
     textBoxMake.Text, 
     textBoxModel.Text); 
     MessageBox.Show("Added"); 
     this.Close(); 
    } 

Но думает, что Вариан тоже не Hte лучше и предпочитаемым.

Вопрос: Каков наилучший способ перемещения созданного объекта (в данном случае субъекте Car, представленный как myCar) из одной формы в другое?

+1

Уточнитните "лучше". Самый читаемый? Быстро? Эффективная память? –

+1

Возможно, это репозиторий автомобилей. Посмотрите на инъекцию зависимостей. – Romoku

+0

Средство под «лучшим» самым защищенным способом и быстро – gbk

ответ

2

Для такого приложения GUI я предлагаю вам следовать шаблону MVC или MVP. Автомобиль класса - это модель, форматы Windows - это виды, представление не содержит экземпляр модели, а представления обновляются через контроллер или ведущий.

Вы можете найти более подробную информацию о MVC/MVP here

+0

, если честно - никогда не читал о' pattern' (как я писал abowe), но выглядит очень полезно. – gbk

+2

Пожалуйста, изучите MVP - это сделает ваш Жизнь WinForms намного проще. :) – IAbstract

+0

@Matt - очень интересная и полезная ссылка – gbk

Смежные вопросы