|
|
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#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. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 16:28 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
авторсобственно, на сколько она правельная с точки зрения джавы код вообще нечитабелный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 16:48 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
многа букф. низачет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 16:50 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
ТимоН авторсобственно, на сколько она правельная с точки зрения джавы код вообще нечитабелный Если не трудно, приведите пару строк примера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 16:52 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
си чувствуется за версту :) что бросилось в глаза: Ball extends TimerTask. нехорошо: шар это просто объект, он не должен инкапсулировать логику по перемещению; лучше выделить его как бин. Классы типа RedBall вообще лишние (цвет это только атрибут, зачем здесь класс не ясно). дальше не вникал. по оформлению кода: тынц (хотя лично мне нравится не все что там рекомендуют) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 17:02 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 17:03 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
[quot ТимоН] Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 1. не хватает закрывающей скобки. 2. табуляцию юзать - это самый большой пипец. должны быть пробелы. 3. мне вот так больше нравится Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 17:07 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
ТимоН Советую в JBuider'e программировать какое-то время, хорошо приучает к правильному стилю. убей себя автор Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ужоснах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 17:12 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
авторужоснах ваши аргументы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 17:16 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
ТимоН авторужоснах ваши аргументы... про "убей себя". билдер ничему хорошему не научит. хорошему научит книжка + опыт. про "ужоснах". это имхо. ничего личного. но вариант акх мне больше нравится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 17:18 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
Deady но вариант акх мне больше нравится. ошибся, ваш вариант, а не Akh ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 17:22 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
автор про "убей себя". билдер ничему хорошему не научит. хорошему научит книжка + опыт. про "ужоснах". это имхо. ничего личного. но вариант акх мне больше нравится. про "убей себя" Ниводной IDE, кроме JBuilder'a, невидел такой жеской привязке к стилю, если захочешь, то несможешь некрасиво писать. В ИДЕЕ только Jalopy, им как-то неудобно польоваться. ужоснах Незнаю я уже привык, мне кажется вполне читабельно, да и количество строк сокразается чуть ли не в двое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 17:23 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
в идее ctrl+alt+L рулит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 17:25 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
Недобно же каждый раз рефрешить... имхо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 17:26 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
ТимоН автор про "убей себя". билдер ничему хорошему не научит. хорошему научит книжка + опыт. про "ужоснах". это имхо. ничего личного. но вариант акх мне больше нравится. про "убей себя" Ниводной IDE, кроме JBuilder'a, невидел такой жеской привязке к стилю, если захочешь, то несможешь некрасиво писать. В ИДЕЕ только Jalopy, им как-то неудобно польоваться. вы просто не умеете ее готовить (ц) ТимоН ужоснах Незнаю я уже привык, мне кажется вполне читабельно, да и количество строк сокразается чуть ли не в двое. для чего? чтобы глаза ломать? к тому же код фолдинг есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 17:26 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
авторвы просто не умеете ее готовить (ц) Нестану спорить, недавно на ИДЕЮ пересел с Билдера, всетаки он мне больше нравится... автордля чего? чтобы глаза ломать? к тому же код фолдинг есть. Опять же для лучшей читабельности, меньше строк на "неважный" код... Я думаю это спорный вопрос, каждому свое, хотя некоторым людям хочется руки оторвать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 17:32 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
Timmси чувствуется за версту :) что бросилось в глаза: Ball extends TimerTask. нехорошо: шар это просто объект, он не должен инкапсулировать логику по перемещению; лучше выделить его как бин. Классы типа RedBall вообще лишние (цвет это только атрибут, зачем здесь класс не ясно). дальше не вникал. по оформлению кода: тынц (хотя лично мне нравится не все что там рекомендуют) 1. TimerTask наследуется для того, чтобы этот шар двигался по минимальной логике (т.е. направления и стенки). Сама логика заложена в его детях RedBall и BlackBall. В первом случае она никакая, во втором случае она выкидывает шар на новую позицию, когда он достиг нижнего края и отображает его от стенок. Далее дети добавляют свойство сталкиваться друг с другом по средству класса BallCollisions. 2. Что такое выделить как бин? 3. Поэтому посчитал, что классы типа RedBall не лишние. 4. К тому же наличие такой последовательной низходящей позволяет функциональность можно легко расширять. Я прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 17:59 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
По стилю кода. Мой компактный, у Timm - разряженый, у Deady и ТимоН - стредний по разраженности. Понятно, посмотрю, может у большинства и лучше. Надо пробовать. Еще комментарии будут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 18:03 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
AkhПо стилю кода. Мой компактный Еще комментарии будут? когда в вашем коде будет разбираться кто-либо, вы устанете икать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 18:08 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
Deady AkhЕще комментарии будут? когда в вашем коде будет разбираться кто-либо, вы устанете икать. Тогда на выходных не разбирайтесь, давайте продолжим в понедельник. Серьезно: Для этого я его и предоставил. Мне полезно, так как это первая программа на джаве, тем кто разбирается, тоже может быть интересно, так как есть поле для рассуждений. В понедельник, для пробы, приведу код к нормальному виду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 18:16 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
Скобки это конечно дела вкуса (хотя такую компактность очень не люблю (лично я)), но вот читабельность методов это святое :) Akh Код: plaintext Ну и наследование шарика от таймерТаск из ноу гуд (вери мач). И опять соглашусь с Timm 'ом, что цвет не есть причина для создания нового класса. Все вышесказанное имхо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 18:28 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
Самое важное: критиковать реализацию без требований есть беспредметный треп :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 18:52 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
TimmСамое важное: критиковать реализацию без требований есть беспредметный треп :).Требование было одно :)) AkhТак что ругайте, как только можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 19:01 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
1) Найти толковый Coding Convension. Можно посмотреть тот который на сайте Sun. Ещё есть хорошая глава в книжке Горький Вкус Java. 2) Научится именовать классы, переменные и методы. Код должен читаться без коментариев. Если x,y - координаты шара, то назвать их. locationX, locationY. А ещё лучше заменить классом Point. Step это не скорость. color понятнее чем c. Для флагов есть boolean. 3) Следующий шаг задуматься над MVC. 4) Изучить проблемы наследования. Научится применять делегирование. Понять что из них и когда нужно использовать. 5) Прочитать GoF. Читая каждый паттерн задуматся над тем нужно ли его применить в твоем коде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 19:14 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
6) Подумать почему Код: plaintext лучше чем Код: plaintext 1. 2. 3. 4. 7) Убрать все магические числа. То есть что-то типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Я конечно немного напутал в логике, но надеюсь основные идеи ясны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 19:33 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
Blazkowicz6) Подумать почему Код: plaintext лучше чем Код: plaintext 1. 2. 3. 4. Хотя нет. Это ещё спорный вопрос. Можно ещё фабрику прикрутить и флейм по этому поводу развести. Так что в контексте этого примера может быть и нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 19:36 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
JozicНу и наследование шарика от таймерТаск из ноу гуд (вери мач). Сейчас у меня получается такая ситуация. Шар имеет возможность двигаться. Его дети, эту возможность приобретают от него и добавляют некую функциональность при движении (преопределение метода и вызов super.run()). Как тогда, лучше это реализуется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2006, 11:32 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
Blazkowicz4) Изучить проблемы наследования. Научится применять делегирование. Понять что из них и когда нужно использовать. Где можно почитать про делегирование? Правильно ли я понимаю, что interface и implemets - это оно и есть? TimerTask не является интрефейсом. Как, тогда, правельно его приминить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2006, 12:06 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
Что такое делегирование разобрался. Как решить следующую задачу: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Необходимо уйти от наследования TimerTask и иметь возможность расширить метод run(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2006, 13:58 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
AkhЧто такое делегирование разобрался. Как решить следующую задачу: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Необходимо уйти от наследования TimerTask и иметь возможность расширить метод run(); Что-то типа такого. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Можно попробовать и BallsCollision extends TimerTask, по-моему нормально будет. Для начала было бы не плохо задуматся какой класс какие цели преследует. И строго ограничить назначение классов. Это и называется инкапсуляция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2006, 14:30 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЧто-то типа такого. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Можно попробовать и BallsCollision extends TimerTask, по-моему нормально будет. Для начала было бы не плохо задуматся какой класс какие цели преследует. И строго ограничить назначение классов. Это и называется инкапсуляция. Это не то, что я хочу. Я хочу инкапсулировать в один класс, направление движеня и само движение. Сейчас это класс Ball. Его дети должны уметь добавлять логику в движение в соответствии с их особенностями. Мне кажется, что такой подход более удобен и корректен. Т.о. получается, что класс Ball должен иметь таймер, а наследники его должны уметь его дополнять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2006, 15:14 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
Инкапсулировать в один класс сам шар и движение - я имею ввиду, что он должен этому соответствовать, что не означает, что хочу, чтобы это решалось одним классом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2006, 15:18 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
Akh Я хочу инкапсулировать в один класс, направление движеня и само движение. 8) "Инкапсулировать" не есть "запихнуть всё". А запихнуть что-то конкретное. Тут надо вернутся к MVC. Направление это Model, а логика движения это Controller. Конечно никто не запрещает это все в одном классе хранить. Но есть практика и убедительные доводы в пользу этого подхода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2006, 15:21 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
Blazkowicz8) "Инкапсулировать" не есть "запихнуть всё". А запихнуть что-то конкретное. Тут надо вернутся к MVC. Направление это Model, а логика движения это Controller. Конечно никто не запрещает это все в одном классе хранить. Но есть практика и убедительные доводы в пользу этого подхода. Как тогда это представлять? Есть набор классов шаров и класс контроллер, который умеет их двигать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2006, 15:28 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Что-то типа такого? Надеюсь смысл понятен. Такие структуры не писал, поэтому, где-то может быть ошибка. Если смысл правельный, прошу поправить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2006, 15:34 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
Получается надо создавать шар: Код: plaintext 1. 2. 3. 4. 5. 6. Это хорошее решение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2006, 15:43 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2006, 15:45 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
wolf_romaНе знаю насколько это правильно. Как начинающему жаба-программисту, кажится странным с точки зрения ООП, что, внутренний класс имеет непосредственный доступ к методам внешнего класса. Но так работает, и программа выглядит проще, т.к. в данном случае нет повода строить по MVC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2006, 17:18 |
|
||
|
Структура классов и их взаимосвязь
|
|||
|---|---|---|---|
|
#18+
AkhНо так работает, и программа выглядит проще, т.к. в данном случае нет повода строить по MVC Конечно, чем ближе к MVC , тем проще выглядит. А если ты про то что исходная модель хорошо работает.... Думаю ты переутомился, ИМХО всё должно быть гораздо проще. По делу: Слишком уж много логики в бедном шарике (даже моторчик встроен) И вообще надо сокращать. Простота кода залог его расширяемости. Я бы убрал область движений(странно каждый шар в своей области, по 4 координаты), зачем какие-то movingX да ещё интовые?? Вполне достаточно скорости по проекциям, а я бы вообще сделал 1скорость и угол(направление). Думаю другие классы тоже можно упростить. Ну конечно правильно было бы оставить в шаре только сеттергеттеры. Мне нравится такая модель: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Интересно, а что в TimerTask, помоему он и есть контроллер,нужно ли его расширять. А в каких направлениях планируются расширения?? если будет много шариков, надо бы наладить делегирование ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2006, 04:51 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2148413]: |
0ms |
get settings: |
9ms |
get forum list: |
8ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
154ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 273ms |
| total: | 525ms |

| 0 / 0 |
