На этом уроке мы создадим интерфейс Strategy(), в котором будет всего один метод join(). Так же реализуем классы стратегий StrategyString и StrategyBuffer().
Дата отправки отчёта:
21 марта 2017 г.
Задание выполнено: за
15 мин.
Чему научился:
Реализовывать стратегию
Что было сложным:
Ничего
Комментарии:
Это как учиться управлять балидом, работая таксистом. Какого же масштаба должен быть проект, чтобы создание кучи классов действительно пригодилось
Любой реальный проект содержит достаточно большое количество классов. И когда программистов больше одного, то без продуманной архитектуры и разбиения кода на простые и понятные части они просто не смогут работать вместе.
Научился: StringBuffer работает с объектами оптом, стринговый += конкатенирует объекты в розницу
Когда объектов мало - разница незаметна, при больших массивах данных буферизиованная обработка предпочтительнее
Научился: Зависит от (в интернете)
1.Выбор метода зависит от количества строк
2.Для соединения двух строк лучше использовать родной String.concat()
3.Для часто вызываемого метода, в котором будут соединяться больше двух строк, лучше использовать последний метод с очищением буфера и повторного его использования. Для thread-safety можно делать это поле ThreadLocal, например. Или вообще не-статичным членом класса.
4.В ходе экспериментов так же выяснилось, что одиночные a+b(+c) лучше заменять на a.concat, при большем количестве — StringBuilder.