![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| _Y_ |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 1 Всего: 34 |
Многие "служебные" объекты, предстваляющие графические элементы, можно использовать многократно в разных объектах одного и того же GUI. Кто-то так и делает, а кто-то предпочитает создавать множество одинаковых (или подобных?) объектов. Вот два фрагмента кода, дающие один и тот же результат:
Повторное использование объекта Border:
Создание отдельных объектов Border:
Зрительный результат один и тот же. Но я вот задумался: Какой вариант грамотнее с точки зрения внутренних механизмов Java и с точки зрения стиля программирования? ЗЫ: Вопрос гораздо шире, чем только Border-ы. Он же часто возникает при использовании рендеров, да и многих других элементов. Это сообщение отредактировал(а) _Y_ - 26.4.2014, 11:47 -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
||||
|
|||||
| Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 2 Всего: 17 |
Не могу сказать за всех, но я стараюсь, по возможности, использовать одни и те-же объекты. Правда это не всегда получается. Например, если мне нужно разместить в форме несколько меток (JLabel) с одинаковым содержимым, их приходится размножать.
Во многом ответ зависит от типа объектов. Я ужасно удивлен, что можно использовать один и тот-же экземпляр Border в нескольких компонентах. Можно посмотреть, сколько памяти на этом экономится. Вряд-ли много. При этом использование одного Border (или любого другого объекта) при создании одной формы наверное правомерно, а вот использование одного Border во всем приложении со множеством форм вряд ли разумно. Кроме того, при изменении имплементации объекта возможность многократного использования может исчезнуть. Это будет трудно обнаружить и долго править. Так что мой подход таков - если я использую классы, которые гарантированно можно будет использовать многократно (как правило это мои собственные классы) то я предпочитаю использовать один объект многократно. Если уверенности у меня нет, то я размножаю. -------------------- Mirkes |
|||
|
||||
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 1 Всего: 34 |
Mirkes, эта логика мне понятна. Я примерно ее же и придерживаюсь.
Кстати, пример с Border интересен еще и тем, что использование одного Border-а на все приложение позволяет изменять стиль "одним махом": поменял в одном месте (там, где Border создается) и стиль всего UI поменялся. Впрочем, того же легко добиться и с множеством экземпляров Border-а, написав метод эти экземпляры создающий. Но хотелось бы узнать что думают гуру от UI (т.е. знающие, что там внутри происходит). Это сообщение отредактировал(а) _Y_ - 10.5.2014, 10:41 -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |