Pull to refresh

Comments 19

поясните в чем плюсы и минусы использования «солдатского» итератора вместо «абстрактного»? ато ваше обяснение «мой способ уникален тем что он другой» както не очень помогает. не для себя спрашиваю просто думаю народу не особо понятно будет
Ну просто проблема в том, что иметь интерфейс для итератора очень удобно.
То есть налицо интерфейс содержащий методы hasNext () и moveNext (). А реализации мы можем иметь и солдатские и прямого обхода или реверсного, если это какая упорядоченная коллекция.

Ну мой пример на самом деле проще чем стандартные объяснения, поэтому прошу прощения за то что я об этом упомянул в статье так будто у меня что-то круче:)

Спасибо за комментарий.
Я на Хабре новый. Подскажите в какой блог лучше забросить эту статью.
Да нет, чтоб тов. Андрий поправил у ся в топике.
Понял свою ошибку. Прошу прощения, и пожалуйста, не обращайте внимания на мой комментарий.
SoldiersIterator iterator = new SoldiersIterator(earthArmy);
 
while(iterator.hasNext()){
 Soldier currSoldier = iterator.next();
 currSoldier.treat();
}


* This source code was highlighted with Source Code Highlighter.


Этот код пропускает первого же юнита

public boolean hasNext() {
//...
 if(currentGroup < _army.ArmyGroups.size())return true;
 if(currentGroup == _army.ArmyGroups.size()-1)
  if(currentGroupSoldier < _army.ArmyGroups.get(currentGroup).Soldiers.size())return true;
//...
}


* This source code was highlighted with Source Code Highlighter.


Условие во втором if'е включается в условие первого, т.к. _army.ArmyGroups.size()-1 < _army.ArmyGroups.size()

Поправьте меня, если я неправ
Насчёт первого куска кода кажется поспешил с выводами, прошу прощения
Ну имплементация не так уж и важна. Важно то, что она скрыта в отдельном классе. Но спасибо за замечание.
В конкретный момент времени сттаття не имеет положительной оценки. Я бы хотел получить какую-то конструктивную критику. Для меня это важно. Спасибо.
Первое: ужасный русский язык. Я вам уже писал, что стоит давать статьи на вычитку тем, кто знает русский. Сейчас текст выглядит так, как-будто вы его прогнали через Google Translate. Очень важно писать статьи грамотно, вам ведь неприятно читать статьи на ломаном украинском языке с кучей русизмов?
Второе: итератор, конечно, очень полезная абстракция, но нужно понимать, что он слишком прост для того, чтобы посвящать ему целую статью на ресурсе с широкой ІТ-аудиторией. Гугл находит около полутора тысяч упоминаний итератора на Хабрахабре, очевидно же, что аудитория хорошо знакома с предлагаемой вами темой. Про паттерны GoF здесь уже писали неоднократно.
Вывод: если ваша статья написана с кучей ошибок, но ее тема интересна сообществу — ее ждет успех (как с предыдущей вашей статьей). Если же вы пишете о том, что все давно знают… ну вы поняли. И не воспринимайте минусы как личное оскорбление — это оценка результатов вашего труда, а не вас самих.
Благодарю за хороший комментарий.

Мне остается или писать о новых и очень интересных вещах, или справляться с русским языком.

А итератор действительно известен всем паттерн. Получается, что писать надо о чем-то чего еще не было на этом сайте. (Напоминает stackoverflow — те же вопросы закрывают просто, а тут "-" ставят.)

Но, на самом деле если искать так site:habrahabr.ru «итератор» то выдает мою статью по первой ссылке.

Я пытаюсь минусы не воспринимать как личное, мне оценки нужны для анализа своей работе.
Sign up to leave a comment.

Articles