|
цепочка методов
|
|||
---|---|---|---|
#18+
Привет! Подскажите пожалуйста, как организовать вывод цепочки методов, последовательно? Сейчас объясню что имею в виду. К примеру есть класс SomeClass , и у него есть два метода 1) Задать характеристики 2) Снять значение после ввода характеристик. Ну пусть к примеру они будут называться 1) createParameters 2) showResult и модификатор доступа у обоих - public Классическая схема вызова: Код: java 1. 2. 3.
Но хотелось бы найти возможность создания примерно такого варианта обращения: Код: java 1. 2.
Подскажите пожалуйста, как такое организовать? И чтобы видимость у второго метода showResult появлялась только после вызова первого createParameters . ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 15:07 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
Сергей Лалов, очевидно, что метод должен тупо возвращать указатель на экземпляр класса ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 15:22 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
Дмитрий Мух, А пример можете показать?) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 15:25 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
Сергей Лалов Подскажите пожалуйста, как такое организовать? И чтобы видимость у второго метода showResult появлялась только после вызова первого createParameters . Ну это тебе в скалу) там такое легко. На Java можно что-то типо такого сделать - Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 15:26 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
Типа того: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 15:27 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
Если хочешь понять как это делается в развитом языке - то смотри тут https://medium.com/@maximilianofelice/builder-pattern-in-scala-with-phantom-types-3e29a167e863 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 15:28 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
Дмитрий Мух Типа того: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
И чем ему это поможет? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 15:29 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
Дмитрий Мух, забыл ник , вкурил, большое спс за оперативность!) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 15:29 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
Сергей Лалов, вообще это называется Fluent Interface: https://java-design-patterns.com/patterns/fluentinterface/ а цепочка методов - это когда вы вызываете метод, что возвращает некий объект, у которого можно вызвать следующий метод ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 15:33 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
еще Builder/SuperBuilder в ломбок есть ну или хотя бы плагины в IDEA для генерации этого boilerplate ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 15:36 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
Дмитрий Мух, да, возврат класса в методе с последующим обращением к нему как к классу это решение. Сам не допер,затупил, ех, решение так близко по сути было) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 15:37 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
Билдер можно сделать умным. Чтоб исключал дублирование заполнения свойств. Или делал какие-то шаблоны объектов на конструкторе а потом добивал их свойствами. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 15:46 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
Всем спасибо, все завелось. Огонь) Небольшой пример на тестовом жертвенном классе Cars) : Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
и вызов: Код: java 1. 2.
Отлично) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 16:04 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
Сергей Лалов Отлично) Тут ценность равна нулю. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 16:14 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
а так? Код: java 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 16:21 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, Механику понял главное. Слепил из того что было под рукой) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 16:22 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
Сергей Лалов PetroNotC Sharp, Механику понял главное. Слепил из того что было под рукой) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 16:23 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
Сергей Лалов, не увлекайся сильно. Должно быть чувство меры по отношению к написанным буквам и эффекту от решения задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 16:24 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
забыл ник а так? Код: java 1.
return this; во все методы вставит))) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 16:24 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
забыл ник а так? Код: java 1.
А так уже простым примером не обойтись) Придется действительно прописывать условия дополнительные , проверять попутно наличие дубликатов и ставить очередность выполнения в условии. Я думаю смогу написать какое нибудь корявое решение, но знаний и практики в JAva у меня не так много. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 16:25 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
Сергей Лалов но знаний и практики в JAva у меня не так много. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 16:27 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, Я сам себе по Java ставлю задачи) Поздно уже дергаться на программиста ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 16:28 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
понятно. Возврат this это Г. решение. Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 16:31 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
Может конструктора с параметрами хватило-бы? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 16:31 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
Сергей Лалов, хотя еще подергаться потрепыхаться смог бы, если бы практически без опыта в Java (на любую зп даже согласен на начальном этапе)) куда нибудь воткнуться. Обучаем) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 16:33 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Ну а какой ты бы вариант предложил? мы же как решаем проблемы - сначала кувалдой шурупы забиваем, а потом видим что есть отвертка) И от этого не уйти. Ни в какой сфере) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 16:35 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
Сергей Лалов Обучаем ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 16:38 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
Сергей Лалов PetroNotC Sharp пропущено... понятно. Возврат this это Г. решение. Удачи! Ну а какой ты бы вариант предложил? мы же как решаем проблемы - сначала кувалдой шурупы забиваем, а потом видим что есть отвертка) И от этого не уйти. Ни в какой сфере) Возврат this - это частный случай возврата некого объекта. Отсюда логично посмотреть в сторону того, чтобы разложить логику по классам. Типа за сборку машин отвечает один, а за показ другой... А мы плавно движемся в сторону SOLID :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 17:04 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
Сергей Лалов, з.ы.: у Petro ко мне личная неприязнь, так что не обращай особого внимания на набросы в сторону предложеного мной варианта :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 17:07 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
Дмитрий Мух Сергей Лалов, з.ы.: у Petro ко мне личная неприязнь, так что не обращай особого внимания на набросы в сторону предложеного мной варианта :) В шарп сообществе детский сад, штаны на лямках))). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 17:12 |
|
цепочка методов
|
|||
---|---|---|---|
#18+
Дмитрий Мух Возврат this - это частный случай возврата некого объекта. Отсюда логично посмотреть в сторону того, чтобы разложить логику по классам. Типа за сборку машин отвечает один, а за показ другой... А мы плавно движемся в сторону SOLID :) Спасибо! Сообразил навскидку вариант выведения Cars в некий один класс, а вот реализацию методов распихать по двум другим. (чувствую что это лишнее, но пока ничего придумать другого не могу.) Добавить в основной класс Cars поле индикатор, к примеру типа int и в зависимости от значения данного индикатора подставлять нужный класс с необходимым методом. По поводу отношений на форумах могу рассказать один прикол (байка или нет. не знаю, но помню история гуляла), примерно 7 лет назад в московской конторе и её филиале в Новосибирске произошел один казус. В головном офисе в Москве один парень DBA сцепился со своим коллегой из Новосиба, причем на почве (!) аниме )) Одному было на тот момент в районе 42 годиков, другому на пару лет побольше. Оба сидели на одном профильном форуме , в какой то момент закусились не по детски там. Ну закусились и закусились, бывает,видимо даже по теме аниме)) Но экшн начался потом , когда в столицу с регионов подтянули сотрудников на новогодний корпоратив , и один из товарищей ,указанных чуть выше , разговорился со своим коллегой и так как оба в теме, осознание своего оппонента дошло до обоих достаточно быстро. Видимо уже разогретые ,слово за слово,шутка за шуткой и они технично наваляли друг другу по щам на виду у всей публики. Первый потом сдернул скатерть с новогоднего стола и зачем то стал скручивать в нее второго)). На удивление никого не уволили, владелец конторы сказал что они достаточно повеселили публику и сделали тот вечер.)) И парню из Новосиба накинули даже по з/п ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 19:16 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2120984]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
177ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 302ms |
0 / 0 |