2014-12-19 5 views
0

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

addBtn.addActionListener(new ActionListener(){ 

     @Override 
     public void actionPerformed(ActionEvent e) { 
      // add the account 
      //this is where I am stuck! 
      Account account = new Savings(amount); 

     } 

    }); 

и основанный на переменной в JComboBox Я хочу, чтобы иметь возможность различать, какой класс создается.

//get the types of accounts 
    ArrayList<String> accountTypes = Account.getAccountTypes(); 
    JComboBox box = new JComboBox(accountTypes.toArray()); 
    contentPanel.add(box); 

Что я могу сделать, чтобы лучше справиться с этим?

+2

Используйте [Factory method] (http://en.wikipedia.org/wiki/Factory_method_pattern) –

+0

Используйте простой оператор 'if'? Если значением combobox является это, то создайте новый объект Savings, иначе, если combobox valus будет создавать новый объект Checking. – Jesper

+0

Jesper, я работаю над созданием своего программного обеспечения немного лучше, я знаю, что здесь будет работать простой переключатель или инструкция if, но я хочу привыкнуть к тому, чтобы сделать его более удобным. – ephemeralCoder

ответ

0

Если вам это нужно только в прослушивателе действий, просто установите там простое, если/else или switch/case. Если есть вероятность, что где-то еще вам нужно будет создавать объекты аналогичным образом, прочитайте о шаблонах проектирования, таких как Factory Method.

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