|
|
|
[q]Конструктор с дефолтными параметрами
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток, всезнающий Олл! Подскажите как решить простую задачу. Имеется конструктор с 10 параметрами; естественно, что вызывать его и всегда задавать все 10 параметров не каждому захочется. Необходимо привести это к виду, когда вызов конструктора происходит с 5 или 6 или...10 параметрами, а все недостающие задаются по дефолту(естественно, что констуктор один, а не свой на каждый из вариантов). Вроде все очень просто, но реализовать именно на джаве не получается. Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2006, 03:41:10 |
|
||
|
[q]Конструктор с дефолтными параметрами
|
|||
|---|---|---|---|
|
#18+
mephДоброго времени суток, всезнающий Олл! Подскажите как решить простую задачу. Имеется конструктор с 10 параметрами; естественно, что вызывать его и всегда задавать все 10 параметров не каждому захочется. Необходимо привести это к виду, когда вызов конструктора происходит с 5 или 6 или...10 параметрами, а все недостающие задаются по дефолту(естественно, что констуктор один, а не свой на каждый из вариантов). Вроде все очень просто, но реализовать именно на джаве не получается. Заранее спасибо! varargs+generics Много зависит от конкретной ситуации Если все агрументы 1 типа просто Код: plaintext А иногда лучше написать несколько конструкторов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2006, 06:27:18 |
|
||
|
[q]Конструктор с дефолтными параметрами
|
|||
|---|---|---|---|
|
#18+
что-то на ум ничего кроме Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. не приходит :) Можно конечно еще посмотреть в сторону "лошадиных" anyargs (как развитие enum), но боюсь это повлияет на качество кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2006, 07:01:19 |
|
||
|
[q]Конструктор с дефолтными параметрами
|
|||
|---|---|---|---|
|
#18+
опаньки...вроде как одновременно запостили (хотя время не совпадает) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2006, 07:02:48 |
|
||
|
[q]Конструктор с дефолтными параметрами
|
|||
|---|---|---|---|
|
#18+
mephИмеется конструктор с 10 параметрами; Ужас какой. Я не захочу вызывать конструктор и с 4 параметрами. Максимум параметров это 3. Здесь явно нужен рефакторинг. 1. Либо заменить все 10 параметров объектом. 2. Либо сделать конструктор и параметры устанавливать с помощью методов инкапсуляции (set). Надо смотреть, что это за объект такой и откуда он берет 10 параметров, как они взаимодействуют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2006, 10:53:48 |
|
||
|
[q]Конструктор с дефолтными параметрами
|
|||
|---|---|---|---|
|
#18+
понятное дело, что ужас. Но человеку надо :)) Может это какой-то класс-"однодневка" - зачем париться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2006, 12:10:16 |
|
||
|
[q]Конструктор с дефолтными параметрами
|
|||
|---|---|---|---|
|
#18+
А потом говорят "О том, что в России лучшии программисты, знают только в России". Что такое класс "однодневка"? Это сегодня я его написал, а завтра удалил из исходников напрочь, не слуху не духу не оставив? В чем смысл сего действия (сегодня создать - завтра удалить)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2006, 13:26:07 |
|
||
|
[q]Конструктор с дефолтными параметрами
|
|||
|---|---|---|---|
|
#18+
alexx726понятное дело, что ужас. Но человеку надо :)) Может это какой-то класс-"однодневка" - зачем париться? на однодневку можно написать много конструкторов -------------------------------------------------- только сейчас обратил внимание=))) Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2006, 13:34:26 |
|
||
|
[q]Конструктор с дефолтными параметрами
|
|||
|---|---|---|---|
|
#18+
LINUXER только сейчас обратил внимание=))) ой понял: new Конструктор(new int[12345]) работает в обоих случаях, а new Конструктор(2,3); не сработает во втором случае ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2006, 13:38:17 |
|
||
|
[q]Конструктор с дефолтными параметрами
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток всезнающий Олл! Спасибо всем за ответы, но хотелось бы сделать элегантнее. Конечно самое первое, что пришло на ум, это: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Что до класса, при написании которого у меня возник этот вопрос, то, возможно, он и "10-минутка", но если уж пишу, то хотелось бы делать это грамотно. В пхп и в си такая задача разрешается довольно легко: Код: plaintext 1. 2. Заранее спасибо за ответы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2006, 14:08:03 |
|
||
|
[q]Конструктор с дефолтными параметрами
|
|||
|---|---|---|---|
|
#18+
meph Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Основная цель в этом=)) Именно, нужно несколько конструкторов. И к каждому можно например написать комментарии(обратите внимание, как это сделано в JDK классах) и как говорил Leonidv, надо минимизировать количество аргументов конструктора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2006, 14:49:45 |
|
||
|
[q]Конструктор с дефолтными параметрами
|
|||
|---|---|---|---|
|
#18+
Советую вам помотреть в сторону фабрик... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2006, 15:32:59 |
|
||
|
[q]Конструктор с дефолтными параметрами
|
|||
|---|---|---|---|
|
#18+
ТимоНСоветую вам помотреть в сторону фабрик... +1 конструктор с 10 параметрами естэм моветон. про абстрактную фабрику классов можно почитать в шаблонах проектирования - обычно тема рассматривается в самом начале. одна из книг "Шаблоны проектирования в Java"(Patterns in Java) М. Гранд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2006, 18:32:55 |
|
||
|
[q]Конструктор с дефолтными параметрами
|
|||
|---|---|---|---|
|
#18+
meph... Подскажите как решить простую задачу. Имеется конструктор с 10 параметрами; естественно, что вызывать его и всегда задавать все 10 параметров не каждому захочется. ... "Испорченный" прежде всего PL/SQL тоже вначале смущался отсутствием присвоения параметров по-умолчанию. Особенно когда значимым вариантом оказывался и конструктор вообще без параметров и конструктор, скажем, с 5-ю параметрами и почти любое их, параметров, сочетание. Вначале так "в лоб" и городил десяток конструкторов. Ага, а в наcледнике опять десяток и т.д. :) Потом мне это надоело и я наконец сподобился почитать и про фабрики и про то, что прежде чем что-то писать, надо подумать для чего оно вообще нужно. :) Произошло маленькое "чудо" - мне перестали мешать яй..., ой, то есть отсутствие присвоения параметров по-умолчанию и даже невозможность передачи переменного числа параметров (как в С++), и даже, когда последняя возможность появилась (вроде как не вру?) в JAVA, она мне как-то особо и не нужна - я даже синтаксис поленился осваивать (ну лентяй - знаю, что есть такая штука, понадобится почитаю), ну нет необходимости и все тут! :) Поэтому приведите лучше свою задачу, которой так нужны 10 параметров, думаю, народ и без меня вам в два счета объяснит, как это решается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 09:21:32 |
|
||
|
[q]Конструктор с дефолтными параметрами
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. Заранее спасибо за ответы![/quot] на Java дефолтные параметры: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 10:11:49 |
|
||
|
[q]Конструктор с дефолтными параметрами
|
|||
|---|---|---|---|
|
#18+
neuromancer_ Код: plaintext 1. 2. Заранее спасибо за ответы! на Java дефолтные параметры: Код: plaintext 1. а вообще 10 параметров это бред ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 10:15:09 |
|
||
|
[q]Конструктор с дефолтными параметрами
|
|||
|---|---|---|---|
|
#18+
Тут уже посоветовали. Я просто приведу цитату по шаблону автор B u i l d e r Свойства шаблона Тип: производящий шаблон Уровень: компонент Назначение Упрощает создание сложных объектов путем определения класса, предназначен- ного для построения экземпляров другого класса. Шаблон Builder генерирует только одну сущность. Хотя эта сущность, в свою очередь, может содержать более одного класса, но один из полученных классов всегда является главным. Область применения Шаблон Builder рекомендуется использовать в следующих случаях. • Класс имеет сложную внутреннюю структуру (особенно это касается тех клас- сов, которые работают с переменными наборами связанных с ними объектов). • Атрибуты класса зависят один от другого. Одно из типичных применений шаб- лона Builder — это его применение в тех случаях, когда имеет место поэтапное создание сложного объекта. Если атрибуты продукта зависят один от другого, его невозможно получить другим способом. Например, предположим, что мы создаем такой объект, как заказ. В этом случае, прежде чем переходить к "созданию" метода доставки, необходимо убедиться в том, что установлено значение, определяющее штат США, так как оно влияет на значение налога с продаж, которое применяется ко всему заказу. • Класс использует другие объекты системы, получить которые во время созда- ния затруднительно или неудобно. Взято из Стивен Стелтинг, Олав Маассен "ПРИМЕНЕНИЕ ШАБЛОНОВ JAVA" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 12:28:01 |
|
||
|
[q]Конструктор с дефолтными параметрами
|
|||
|---|---|---|---|
|
#18+
Благодарю всех за ответы, наставили на путь истинный :) Конечно же я не собираюсь использовать класс, в конструкторе которого 10 параметров. Просто возник такой вопрос, и я не смог найти ответ в документации. Шаблоны проектирования это очень хорошо, но мне казалсь такую простую операцию можно было бы и проще реализовать. Ну нет - так нет. Всем спасибо, вопросов нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 13:24:09 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34187587&tid=2147242]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
188ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
2ms |
| others: | 216ms |
| total: | 471ms |

| 0 / 0 |
