|
множественные switch case
|
|||
---|---|---|---|
#18+
Ребята! дайте критику нижеприведенному алгоритму или помогите оптимизировать работу алгоритма вот код Код: plaintext 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. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116.
здесь, в цикле перебираем значения из DAO и сравниваем их со значениями введенными в форму xxxEq тоже значения с формы, меняю условия соответствия данных и таких полей на форме больше 20, код стал очень громоздким. посоветуйте, что тут можно сделать?? -------------------------------- нет! вы не поняли, это may way. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2009, 20:13 |
|
множественные switch case
|
|||
---|---|---|---|
#18+
1) Вспомнить про полиморфизм 2) Нафига там вообще switch если на if-ах тоже самое смотрелось бы понятнее. Количество Case не может рости? Почему бы для начала не избавится от copy-paste и просто вызывать метод? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2009, 20:19 |
|
множественные switch case
|
|||
---|---|---|---|
#18+
Долго думал что ответить... Во-первых нивкакую не понял чем отличаются обработка case-ов Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Хотя возможно вы привели не полностью рабочий код, а просто примерную структуру, тогда еще ладно, Но вот чего все равно никак не могу понять это наличие 6 условий после вызова метода compareTo(), а я то наивный думал их все три - больше, меньше и равно, а больше либо равно уже включает один из этих вариантов, так что этот код можно смело выкинуть ибо он бесполезен. Итак осталось три условия, которые вполне ложатся на if? else if Далее порадовала проверка строки на пустое значение, хотя многие и не знают об этом но есть либа commons-lang, там поищите что-то вроде StringUtils.isBlank(). П,С, это все-таки стеб? слишком уж говнокодисто как-то ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2009, 21:12 |
|
множественные switch case
|
|||
---|---|---|---|
#18+
Если поменять местами порядок сравнения предикатов (comparison...) и выражение switch(sysnmbrEq) то думаю, код уменьшится раз в 5. Вообще, исходник необычайно запущенный. Его надо срочно рефакторить или выбросить на свалку. Сопровождать такой сорс просто невозможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2009, 21:35 |
|
множественные switch case
|
|||
---|---|---|---|
#18+
Смотря какую цель вы преследуете этим кодом. Если хотите чтоб никто и никогда не смог разобратся в том что вы написали - продолжайте, начало неплохое. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2009, 09:59 |
|
множественные switch case
|
|||
---|---|---|---|
#18+
корявость кода и сам вижу пришел сюда за советом ибо спросить рядом не у кого предыдущий пример был неправильным, каждый раз проверяются условия отдельно для каждой отдельной записи sysnmbrEq, viddocEq Код: plaintext 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. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84.
to: Blazkowicz немного изменил код, вынес сравнение значений в отдельный метод Код: plaintext 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.
теперь код стал намного короче Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
to забыл ник как можно избавится от обработки 6 вариантов значений если условие Я получаю из веб формы Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
подскажи пжлст как сделать оптимальние жду критики еще....))))) -------------------------------- нет! вы не поняли, это may way. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2009, 12:23 |
|
множественные switch case
|
|||
---|---|---|---|
#18+
Vetic... Если тело case очень сложное, и есть тенденция к расширению количества вариантов - то используй шаблон Replace Conditional with Polymorphism. Veticmay way my way ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2009, 12:43 |
|
множественные switch case
|
|||
---|---|---|---|
#18+
переписал метод на использование if else Код: plaintext 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.
только все равно выглядит громоздко и думаю что из-за такого количества if-ов код будет работать медленее -------------------------------- нет! вы не поняли, это may way. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2009, 12:53 |
|
множественные switch case
|
|||
---|---|---|---|
#18+
Veticпереписал метод на использование if else только все равно выглядит громоздко и думаю что из-за такого количества if-ов код будет работать медленее Оператор && вам не знаком в принципе? Для начала запишите эту лесенку ОДНИМ условием. А дальше уже будет видно. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2009, 12:58 |
|
множественные switch case
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
нет! вы не поняли, это may way. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2009, 13:11 |
|
множественные switch case
|
|||
---|---|---|---|
#18+
Замечательно! Теперь как на счет ||? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2009, 13:54 |
|
множественные switch case
|
|||
---|---|---|---|
#18+
элементарно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2009, 14:00 |
|
множественные switch case
|
|||
---|---|---|---|
#18+
элементарно :) Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2009, 14:03 |
|
множественные switch case
|
|||
---|---|---|---|
#18+
Подобные проверки с comparison я обычно делал с учётом вероятности срабатывания предикатов. Например, если величина равномерноо распылена по диапазону int, то можно проверить сначала comparison>0, потом comparison < 0, а потом проверять нестрогие проверки. Но такая оптимизация была полезна на С++ и на очёнь тяжёлых циклах. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2009, 14:10 |
|
множественные switch case
|
|||
---|---|---|---|
#18+
Только прошел материал о том как правильно использовать switch как сразу же наткнулся на этот топик)) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 16:34 |
|
|
start [/forum/topic.php?fid=59&msg=36093394&tid=2120671]: |
0ms |
get settings: |
10ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
28ms |
get topic data: |
3ms |
get forum data: |
0ms |
get page messages: |
270ms |
get tp. blocked users: |
0ms |
others: | 298ms |
total: | 616ms |
0 / 0 |