|
![]() |
#1 |
Участник
|
Я думаю это сделано для использования различных порождающих шаблонов проектирования (Порождающие шаблоны проектирования).
Для того чтобы такие объекты было удобнее создавать другим более высокоуровневые объектам, а не программистам. Точнее чтобы программистам было удобнее программировать эти высокоуровневые объекты на создание таких объектов. Ну вы поняли |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
![]() |
#2 |
Участник
|
Почему плохого?
А что плохого, например, в ноже? Инструмент и инструмент. У всего есть область применения. Лучше расскажите что хорошего. Цитата:
Сообщение от S.Kuskov
![]() Я думаю это сделано для использования различных порождающих шаблонов проектирования (Порождающие шаблоны проектирования).
Для того чтобы такие объекты было удобнее создавать другим более высокоуровневые объектам, а не программистам. Точнее чтобы программистам было удобнее программировать эти высокоуровневые объекты на создание таких объектов. Ну вы поняли ============= Накину в обсуждение: * стиль с parm-методами "скрывает" обязательные для объекта параметры * стиль с parm-методами вынуждает добавлять валидацию внутреннего состояния объекта в начале каждого метода Поясню что имею в виду. Возьмем класс DictTable. У него в методе new явно указан обязательный для объекта параметр tableId. Во-первых, сразу видно какой параметр обязателен. Во-вторых, в методах класса можно не делать проверку "пропущен ли tableId", достаточно сделать такую проверку в new Последний раз редактировалось mazzy; 26.07.2020 в 08:19. |
|
|
За это сообщение автора поблагодарили: ta_and (4). |
![]() |
#3 |
Участник
|
|
|
![]() |
#4 |
Участник
|
Цитата:
правда я бы опасался за термин "атомарность" в результате может получиться полусобранный объект, в котором некоторые параметры пропущены. собственно и вопрос - а что с таким полусобранным (не гарантированным) объектом делать? и не превысят ли затраты на валидацию преимущества такой гибкости? может быть, я еще каких-нибудь преимуществ не знаю? |
|
![]() |
#5 |
Участник
|
Цитата:
Это вечный вопрос из разряда, что лучше строгая типизация или динамическая. Нет универсального ответа. Для каждой задачи своё решение. |
|
![]() |
#6 |
Участник
|
Цитата:
Цитата:
есть тупость порождающего алгоритма. * сложность одинакова и для геренации параметров конструктора, и для генерации вызова parm-методов. буквально пара if * порождающий алгоритм должен знать какие параметры являются обязательными и для параметров конструктора, и для parm-методов. Но в parm-методах это знание не выражено явно * из-за неявности, приходится добавлять валидацию перед каждым методом объекта, который порожден parm-методами. Повторю: вопрос не в том "что плохого, что хорошего"? и это не вопрос, который требует универсального ответа 42. Собственно вопрос: Почему так? При каких условиях parm-методы все-таки эффективнее? Только авто-генерация кода? Но в Аксапте её практически нет. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|