организация кода, методов [1]
От: Crystalizer Украина  
Дата: 11.12.07 13:37
Оценка:
Здравствуйте, Гуру

Всё время думаю как правильнее сделать следующее:

GUI класс, есть поля класса.
конструктор их инициализирует, наполняет и потом совместно и раздельно это все используется.
как лучше/правильнее организовать код?
или как точно неправильно, а остальное нормально?

class A {
   private Panel field1;
   private Panel field2;
   private Panel field3;
   private Panel mainPanel;

   // здесь будет конструктор, инициализация и наполнение полей.

   public useField1() {
       // метод вызываемый извне и юзающий field1
   }

   public useField2() {
       // метод вызываемый извне и юзающий field2
   }
}


Вопрос: как лучше сделать?

так:
   public A() {
        createMainPanel();
        mainPanel.add(createField1());
        mainPanel.add(createField2());
        mainPanel.add(createField3());
   }

   private Widget createField1() { // аналогично для field2,3
        field1 = new Panel();
        field1.addButton(...);
        field1.addButton(...);
        field1.addButton(...);
        ...
        return field1;
   }


или так:

   public A() {
        createMainPanel();
        mainPanel.add(field1 = createField1());
        mainPanel.add(createField2());
        mainPanel.add(createField3());
   }

   private Panel createField1() { // аналогично для field2,3
        Panel p = new Panel();
        field1.addButton(...);
        field1.addButton(...);
        field1.addButton(...);
        ...
        return p;
}


или так:

   public A() {
        createMainPanel();
        field1 = createField1()
        mainPanel.add(field1);
        mainPanel.add(createField2());
        mainPanel.add(createField3());
   }

   private Panel createField1() { // аналогично для field2,3
        Panel p = new Panel();
        field1.addButton(...);
        field1.addButton(...);
        field1.addButton(...);
        ...
        return p;
}


или так:

   public A() {
        createMainPanel();
        field1 = createField1()
        field2 = createField2()
        field3 = createField3()
        mainPanel.add(field1);
        mainPanel.add(аield2);
        mainPanel.add(field3());
   }

   private Panel createField1() { // аналогично для field2,3
        field1 = new Panel();
        field1.addButton(...);
        field1.addButton(...);
        field1.addButton(...);
   }
}


?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.