Язык программирования Java

Слайд 2

Строитель

Отделяет конструирование объекта от его представления.
Позволяет использовать один и тот же процесс

Строитель Отделяет конструирование объекта от его представления. Позволяет использовать один и тот
конструирования для создания различных представлений.
Пример:
графическое представление должно изменять свой вид в зависимости от текущего состояния приложения так, что если в списке меньше N элементов, то отображать RadioButton; иначе – выпадающий список

Слайд 3

Строитель (абстрактный предок)

public abstract class MultiChoice {
//от этого класса наследуются список

Строитель (абстрактный предок) public abstract class MultiChoice { //от этого класса наследуются
и кнопки
private Vector choices;//отображаемые сущности
public MultiChoice(Vector choiceList) {
choices = choiceList;
} //наследники реализуют следующие методы
abstract public Panel getUI();//создает панель графических компонентов
abstract public String[] getSelected(); //текущее выбранное значение(я)
abstract public void clearAll(); //сброс состояния
}

Слайд 4

Строитель (наследники, они же Строители)

class ListBoxChoice extends MultiChoice {…}
class CheckBoxChoice extends MultiChoice

Строитель (наследники, они же Строители) class ListBoxChoice extends MultiChoice {…} class CheckBoxChoice extends MultiChoice {...}
{...}

Слайд 5

Строитель (фабрика, он же директор)

public class ChoiceFactory {
MultiChoice ui;
//Возвращает графический

Строитель (фабрика, он же директор) public class ChoiceFactory { MultiChoice ui; //Возвращает
контейнер с набором компонент
public MultiChoice getChoiceUI(Vector choices) {
if (choices.size() <=3){
//панель с переключателями
ui = new CheckBoxChoice(choices);
} else {
//панель со списком
ui = new ListBoxChoice(choices);
}
return ui;
}
}

Слайд 6

Строитель (использование)

Vector v = null;
int index = stockList.getSelectedIndex();
choicePanel.removeAll(); //удалить старую панель
//выбор из

Строитель (использование) Vector v = null; int index = stockList.getSelectedIndex(); choicePanel.removeAll(); //удалить
нескольких вариантов представлений
switch (index) {
case 0:
v = Stocks; break;
case 1:
v = Bonds; break;
}
mchoice = cfact.getChoiceUI(v);//создание представления
choicePanel.add(mchoice.getUI());//отрисовка