| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Интерфейс, смена содержания метода на лету.. |
| Автор: Viroman 1.5.2012, 12:55 | ||||||
| Здравствуйте, есть программа с интерфейсом, где та программа вызывает методы, содержание которых указываю я.. К той программе у меня нет доступа.. Вот и вопрос, покуда ограничен тем, что исходники той программы трогать не могу, а лишь свои. Представим ситуацию..
Это для наглядности, и надо представить, что этот метод вызывается многократно, миллионы раз, но проверять a.startsWith('something') мне нужно лишь единожды в самом начале, последующие миллионы вызовов в этом нет необходимости, только излишнее пожирание ресурсов.. Так вот, возможно ли на лету переписывать свои же методы в своём же классе? Типа было
проверило разочек, а потом переписывается на лету этот же метод в
Вот такое возможно ли? Если да, то как именно на наглядных примерах пожалуйста?! Спасибо большое заранее!!! |
| Автор: Stolzen 2.5.2012, 09:20 | ||
Попробуйте использовать паттерн стратегия
И, соотвественно, сначала устанавливаете нужную стратегию через сеттер, а затем вызываете метод process сколько угодно раз. |
| Автор: priam220 2.5.2012, 13:34 | ||
| Технически это http://java.dzone.com/articles/reloading-java-classes-401 (HotSwap, JRebel). Но это тулзы больше для дебага. Как решение, Stolzen, предложил наиболее естественное, имхо. Хотя для вашего случая, возможно достаточно ввести дополнительный булиан:
Мне кажется такой подход должен быть чуть быстрее, чем вызов метода strategy.process(); |