Показать сообщение отдельно
Старый 26.07.2020, 08:06   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от pitersky Посмотреть сообщение
А что в этом подходе плохого?
Почему плохого?

А что плохого, например, в ноже? Инструмент и инструмент. У всего есть область применения.

Лучше расскажите что хорошего.

Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Я думаю это сделано для использования различных порождающих шаблонов проектирования (Порождающие шаблоны проектирования).

Для того чтобы такие объекты было удобнее создавать другим более высокоуровневые объектам, а не программистам. Точнее чтобы программистам было удобнее программировать эти высокоуровневые объекты на создание таких объектов. Ну вы поняли
А почему такой стиль делает программное создание более удобным?

=============
Накину в обсуждение:
* стиль с parm-методами "скрывает" обязательные для объекта параметры
* стиль с parm-методами вынуждает добавлять валидацию внутреннего состояния объекта в начале каждого метода

Поясню что имею в виду.
Возьмем класс DictTable. У него в методе new явно указан обязательный для объекта параметр tableId.
Во-первых, сразу видно какой параметр обязателен.
Во-вторых, в методах класса можно не делать проверку "пропущен ли tableId", достаточно сделать такую проверку в new
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 26.07.2020 в 08:19.
За это сообщение автора поблагодарили: ta_and (4).