![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Viroman |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 140 Регистрация: 28.7.2008 Репутация: нет Всего: нет |
Здравствуйте,
есть программа с интерфейсом, где та программа вызывает методы, содержание которых указываю я.. К той программе у меня нет доступа.. Вот и вопрос, покуда ограничен тем, что исходники той программы трогать не могу, а лишь свои. Представим ситуацию..
Это для наглядности, и надо представить, что этот метод вызывается многократно, миллионы раз, но проверять a.startsWith('something') мне нужно лишь единожды в самом начале, последующие миллионы вызовов в этом нет необходимости, только излишнее пожирание ресурсов.. Так вот, возможно ли на лету переписывать свои же методы в своём же классе? Типа было
проверило разочек, а потом переписывается на лету этот же метод в
Вот такое возможно ли? Если да, то как именно на наглядных примерах пожалуйста?! Спасибо большое заранее!!! |
||||||
|
|||||||
Stolzen |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 23 Всего: 48 |
Попробуйте использовать паттерн стратегия
И, соотвественно, сначала устанавливаете нужную стратегию через сеттер, а затем вызываете метод process сколько угодно раз. |
|||
|
||||
priam220 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 4.6.2010 Репутация: 7 Всего: 8 |
Технически это возможно (HotSwap, JRebel). Но это тулзы больше для дебага.
Как решение, Stolzen, предложил наиболее естественное, имхо. Хотя для вашего случая, возможно достаточно ввести дополнительный булиан:
Мне кажется такой подход должен быть чуть быстрее, чем вызов метода strategy.process(); Это сообщение отредактировал(а) priam220 - 2.5.2012, 13:55 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |