|
|
|
Паттерн билдер
|
|||
|---|---|---|---|
|
#18+
Всем привет. Есть цепочка вызовов методов: Код: java 1. 1. Как правильно прервать выполнение цепочки, например, на methodTwo(), пока что приходят в голову варианты с исключением или используя некий булеан флаг 2. Как запретить перестановку методов в цепочке вызовов, т.е. чтобы вот так: Код: java 1. нельзя было написать Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 10:02 |
|
||
|
Паттерн билдер
|
|||
|---|---|---|---|
|
#18+
JulT, Зачем исключение? Безопаснее разные типы возвращать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 10:10 |
|
||
|
Паттерн билдер
|
|||
|---|---|---|---|
|
#18+
BlazkowiczJulT, Зачем исключение? Безопаснее разные типы возвращать. а можно с примерчиком? и по второму вопросу могли бы что-то подсказать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 10:16 |
|
||
|
Паттерн билдер
|
|||
|---|---|---|---|
|
#18+
JulT, Не понял. Разве паттерн о цепочке вызовов? - любую цепочку можно написать без цепочки в несколько строк. Поэтому первый вопрос непонятен. Прогер может написать 3 строки, а может в одну. Его дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 10:21 |
|
||
|
Паттерн билдер
|
|||
|---|---|---|---|
|
#18+
Petro123JulT, Не понял. Разве паттерн о цепочке вызовов? - любую цепочку можно написать без цепочки в несколько строк. Поэтому первый вопрос непонятен. Прогер может написать 3 строки, а может в одну. Его дело. как программно задать последовательность вызовов методов? чтобы было так и никак иначе: methodOne().methodTwo().methodThree() как программно сделать так, чтобы если написать methodOne().methodTwo() происходил некий алерт, мол нет вызова methodTwo() или это из области моих фантазий?:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 10:26 |
|
||
|
Паттерн билдер
|
|||
|---|---|---|---|
|
#18+
JulTили это из области моих фантазий?:) да. IMHO Если вы у объекта возврата функции methodOne() не напишите метод methodTwo(), то после точки НЕ будет подсказки с методом. Не скомпилируется. По простому - компилятор просто разворачивает вашу одну строку в 3 строки. Это понятно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 10:31 |
|
||
|
Паттерн билдер
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 10:34 |
|
||
|
Паттерн билдер
|
|||
|---|---|---|---|
|
#18+
no56892, не знаю про что ТС. Я говорил про ООП (без интерфейсов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 10:38 |
|
||
|
Паттерн билдер
|
|||
|---|---|---|---|
|
#18+
JulTкак программно задать последовательность вызовов методов? чтобы было так и никак иначе: methodOne().methodTwo().methodThree() как программно сделать так, чтобы если написать methodOne().methodTwo() происходил некий алерт, мол нет вызова methodTwo() или это из области моих фантазий?:) Очевидно, поменять архитектуру, так как в ней что-то не то, если функциональность зависит от последовательности вызовов. Программно - объединить три метода в один и вызывать его извне. Если же методы настолько ценны, что должны вызываться вне класса, то в классе завести поле для состояния и отмечать, какой метод (какие методы) были вызваны, в методах, перед которыми что-то должно быть вызвано, проверять эти предусловия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 10:44 |
|
||
|
Паттерн билдер
|
|||
|---|---|---|---|
|
#18+
schiОчевидно, поменять архитектуру, так как в ней что-то не то, если функциональность зависит от последовательности вызовов. +1 именно это меня и поразило. Какого фига я должен писать так а не иначе цепочку. Цепочку составляет программист САМ). ЗЫ. Паттерн в сабже вообще не про цепочки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 10:49 |
|
||
|
Паттерн билдер
|
|||
|---|---|---|---|
|
#18+
no56892 Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Плюсую! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 10:51 |
|
||
|
Паттерн билдер
|
|||
|---|---|---|---|
|
#18+
Petro123schiОчевидно, поменять архитектуру, так как в ней что-то не то, если функциональность зависит от последовательности вызовов. +1 именно это меня и поразило. Какого фига я должен писать так а не иначе цепочку. Цепочку составляет программист САМ). ЗЫ. Паттерн в сабже вообще не про цепочки. всем спасибо, разобралась. про билдер да, это я погорячилась) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 10:52 |
|
||
|
Паттерн билдер
|
|||
|---|---|---|---|
|
#18+
Код: 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. 33. 34. 35. 36. 37. 38. можно и в отдельные файлы повыносить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 10:53 |
|
||
|
Паттерн билдер
|
|||
|---|---|---|---|
|
#18+
как-то оно многословно выходит. Возможно, автору надо посмотреть на монады, и попытаться реализовать нужный функционал через них. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2016, 19:47 |
|
||
|
Паттерн билдер
|
|||
|---|---|---|---|
|
#18+
Например цепочка Страна-Город-Улица Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2016, 21:55 |
|
||
|
Паттерн билдер
|
|||
|---|---|---|---|
|
#18+
Чтобы и в обратном порядке Код: 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. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2016, 22:02 |
|
||
|
Паттерн билдер
|
|||
|---|---|---|---|
|
#18+
Билдер нужно сделать FSM. И чтобы на каждый сеттинг страны-города-улицы включались флажки или менялся счетчик и дальше соотв. разруливать рулы так как автору надо. Запорол бок - получи IllegalState. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2016, 22:32 |
|
||
|
Паттерн билдер
|
|||
|---|---|---|---|
|
#18+
maytonБилдер нужно сделать FSM. И чтобы на каждый сеттинг страны-города-улицы включались флажки или менялся счетчик и дальше соотв. разруливать рулы так как автору надо. Запорол бок - получи IllegalState. какие будут за и против билдер паттерна и конроля с помощью флагжков ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2016, 10:24 |
|
||
|
Паттерн билдер
|
|||
|---|---|---|---|
|
#18+
llemingкакие будут за и против билдер паттерна и конроля с помощью флагжков ? Смысл контролировать в run-time, если можно в compile-time? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2016, 10:26 |
|
||
|
Паттерн билдер
|
|||
|---|---|---|---|
|
#18+
у бидера стремно чтобы протестировать логику надо в любом случае собирать весь объект может быть непросто если много полей exception если вдруг посередине сборки объекта и дебажить неудобно надо в уме держать что было ранее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2016, 10:28 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39306895&tid=2123725]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 378ms |

| 0 / 0 |
