Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > MVC - Constructor vs Setter?


Автор: Killer_13 21.1.2012, 19:31
Собственно интересует вопрос, что лучше использовать для передачи в Controller? 
К примеру делал вот таким макаром, 
Код

public class CalcMVC {
    //... Create model, view, and controller.  They are
    //    created once here and passed to the parts that
    //    need them so there is only one copy of each.
    public static void main(String[] args) {
        
        CalcModel      model      = new CalcModel();
        CalcView       view       = new CalcView(model);
        CalcController controller = new CalcController(model, view);
        
        view.setVisible(true);
    }
}

но как-то нужно было передать 2 Вьюва в один контроллер или что-то такое, тогда вопрос постал, если вызывать еще раз к примеру другой конструктор, то соответственно создается другой объект.
Человек который подсказывал мне, даже удивился - он сказал, что предпочитает, это все дело запихивать через Setter-ы?

Так как правильнее? Какие плюсы, минусы?
Спасибо!

Автор: powerOn 22.1.2012, 15:15
это вопрос стиля, т.е. субъективный. фукционально, что конструктор, что сеттер - разницы нет.

Автор: Killer_13 22.1.2012, 15:18
Собственно и спрашиваю, интересуюсь, что предпочтительней.. или это уже на выбор программиста?
Тоисть по сути, если я напишу вот так
Код

......
        CalcModel      model      = new CalcModel();
        CalcView       view       = new CalcView();
        view.setModel(model);
        CalcController controller = new CalcController();
        controller.setModel(model);
        controller.setView(view);
.....


будет то же, никаких плюсов и минусов в дальнейшей разработке..?

Автор: Stolzen 23.1.2012, 09:52
Через конструктор места меньше занимает (строк, в смысле), и объект готов к функционированию сразу же - NPE точно не поймаете. 

Автор: Killer_13 23.1.2012, 11:51
Цитата

сразу же - NPE точно не поймаете.

дааа, припоминаю, пришлось "пошевелить" однажды когда вот из-за не внимательности вылезло
Спасибо.

Автор: Entwickler 30.1.2012, 19:19
Привет!

в принципе конструктор используется только при "построении" обьекта. После этого обьект готов! И что теперь делать если нужно изменить его состояние? Вот сдесь и нужны "аксессоры"...

Тоесть: строим обьект конструктор или сеттеры, меняем состояние обьекта только сеттеры

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)