Есть довольно a few of IRC server codesБыло бы смешно использовать оператор switch для обработки кодов сервера irc?
Я работаю на небольшом IRC client for Adobe AIR, и я начал с поддержкой лишь немногие из них на начальном этапе, а затем переключатель заявление не кажется плохой идеей. Но по мере того, как я поддерживаю все больше и больше, оператор switch становится длиннее, и кажется, что он немного из-под контроля. Одна из проблем заключается в том, что я сохранил код обработки IRC низкого уровня в файле самостоятельно, чтобы его можно было повторно использовать. Я хотел бы сохранить все в одном файле. Другая проблема заключается в том, что блоки кода в операторах switch в настоящее время предполагают, что они являются частью этого класса IRC, и часто используется этот оператор. Внесение изменений теперь будет большой работой и внедрением регрессий. Единственная проблема - это мое отвращение к длинному оператору switch, в противном случае вы знаете, что это работает, и его легко читать, но на самом деле это не усложняет работу. Но это такой длинный оператор переключения. И функция, которая содержит оператор switch, явно слишком длинная. : //
Одна вещь, которую я иногда делаю вместо коммутатора, это то, что я определяю функции, имена которых называются после значения, которое вычисляет коммутатор. Вместо переключателя:
switch (val) {
case: "alert":
alert("yo");
break;
}
я проверяю, если метод существует в области видимости и выполнить его:
obj.alert = function () {
alert("yo");
}
if (val in obj && isFunction(obj[ val ])) {
obj[ val ]();
}
Но и в этом случае я чувствую, что есть высокий риск в регрессиях и Я не уверен, что это стоит усилий только для того, чтобы избежать длинного оператора переключения, ради его длины.
Потому что тогда вы снова и снова объявляете множество функций каждый раз, когда вы создаете экземпляр этого класса IRC только по той причине, что переключатель слишком долго. Обратите внимание, что, когда вы используете объект-прототип для добавления функций, вы только объявляете функции один раз для всех экземпляров. –
Но мой вопрос действительно, должен, если я должен использовать переключатель. Значит, твой ответ - нет? Я не должен? Я должен рискнуть переписать? –
Я думаю, что было бы легче переписать некоторые части сейчас, чем пытаться сохранить огромное заявление о переключении, лично. Я не знаю о вас, но я бы не хотел этого. –