Construtor с длинным списком параметров ИЛИ несколькими сеттерами? - PullRequest
0 голосов
/ 30 марта 2011

Чтобы инициализировать экземпляр, мы можем использовать либо конструктор по умолчанию и несколько сеттеров, либо конструктор с длинным списком параметров.В последнем случае состояние объекта может оставаться неизменным после того, как объект сгенерирован (потому что нет установщика), но длинный список параметров уродлив и подвержен ошибкам.В первом случае длинный список параметров избегают, но состояние объекта может быть изменено установщиками по ошибке после того, как объект полностью создан.

Мне нужен такой объект, чтобы его внутренние поля оставались неизменными послеобъект создан, пока мне не нравится длинный список параметров.Как лучше всего это делать?

Ответы [ 2 ]

9 голосов
/ 30 марта 2011

Использование Шаблон Builder :

Foo foo = new FooBuilder().setBar(...).setBaz(...).build();
2 голосов
/ 30 марта 2011

Длинный список параметров может (но не обязан) означать, что класс должен быть реорганизован в меньшие классы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...