Петля-переключатель последовательности антипаттерна - PullRequest
0 голосов
/ 03 июня 2011

Я был разработчиком java SE довольно долго, но сейчас я начинаю с android. Я видел много андроид-проектов, и мне интересно, почему последовательность Loop-switch так часто появляется в их коде. Я всегда пытался избежать этого в своем коде. Неужели это настолько распространенный и необходимый подход в программировании для Android?

Ответы [ 2 ]

3 голосов
/ 03 июня 2011

A Последовательность циклического переключения следует избегать при использовании для реализации последовательности событий. При использовании в программировании на основе событий, когда события не известны заранее, необходимо и правильно использовать конструкцию.

0 голосов
/ 03 июня 2011

Если вы говорите о паттерне, описанном в статье Википедии "Последовательность переключения цикла" , то я подозреваю, что то, что вы видите в коде andoid, является законным использование переключателя внутри цикла формирует обработчик событий, как упомянуто в статье, - обычно это делается с помощью цикла while.

Антипаттерн состоит из использования конструкции для моделирования фиксированной последовательности (т. е. инкрементный цикл for), где он не служит никакой другой точкой, кроме запутывания (и, возможно, повторного введения номеров строк для тех, кто окончательно влюблен в C64 BASIC).Для четного обработчика это законно, потому что последовательность событий не фиксирована - вам нужно каким-то образом выполнять различные действия в зависимости от типа события.

Однако это, вероятно, не самый лучший дизайн - стратегияшаблон будет лучше ОО-дизайна (где разные действия состоят из разных реализаций метофаза самим четным объектом или полученным из него).

...