На этом уроке мы пройдёмся по всему коду программы и сделаем небольшие улучшения кода. В основном мы будем заменять String на StringBuffer в тех местах, где происходит итеративное формирование строк.
Дата отправки отчёта:
8 декабря 2016 г.
Задание выполнено: за
10 мин.
Чему научился:
Повторил пройденное
Что было сложным:
найти время
Комментарии:
Сразу использовал StringBuilder (а не StringBuffer), когда начали использовать подобные склеивания. Мини методы в ParamFactory были реализованы ещё в прошлом уроке. По убирал ненужны public по всему коду, где надо поставить private, так как protected не вижу смысла.
Так как у нас однопоточное приложение, лучше использовать StringBuilder, он шустрее, по аналогии HashSet, а в многопоточных приложениях уже надо использовать StringBuffer, но StringBuffer очень затратно увеличивается, поэтому лучше при его инициализации сразу указывать размер, чтобы он не расширялся, пусть будет лучше с запасом, а то он будет тупить по типу конкатенации строк. Поэтому часть слова и звучит как Buffer. В некоторых мануалах советуют задавать размер 222, так как использовании встроенных методов могут расширять размер буфера, а это затратное дело. пример: new StringBuffer(222), для StringBuilder такого геморроя не требуется.
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.
Научился: Работать с StringBuffer, который похоже является аналогом StringBuilder в шарпе. Я так и не понял, почему при объявлении в ParamFactory полей fruitReader и convertable в protected они по прежнему были доступны. Ведь protected должен быть виден изнутри класса или из классов-наследников. Буду багодарен за разъяснения)