내가 작은 IRC client for Adobe AIR 일하고 아주 a few of IRC server codesirc 서버 코드를 처리하기 위해 switch 문을 사용하는 것은 터무니없는 일일까요?
있다, 나는 처음에이 중 일부만을 지원함으로써 시작하고 스위치 문이 나쁜 생각처럼 보이지 않았다. 그러나 점점 더 많은 것을 지원함에 따라 switch 구문은 점점 길어지고 있으며, 통제가 다소 벗어난 것처럼 느껴집니다. 한 가지 문제는 저수준의 IRC 처리 코드를 파일에 그대로 두어 재사용 할 수 있다는 것입니다. 모든 것을 하나의 파일에 보관하고 싶습니다. 또 다른 문제는 switch 문에있는 코드 블록이 현재이 IRC 클래스의 일부로 간주되며이 명령문을 자주 사용한다는 것입니다. 변경 작업은 많은 작업이 될 것이며 회귀 분석을 도입 할 것입니다. 유일한 문제는 실제로 긴 switch 문에 대한 나의 혐오감입니다. 그렇지 않으면 작동한다는 것을 알게되고 읽을 수는 있지만 실제로 유지하기가 더 어려워지는 것은 아닙니다. 하지만 그렇게 긴 switch 문입니다. 그리고 switch 문을 포함하는 함수는 분명히 길다. : //
내가 스위치 대신에 때때로하는 일 중 하나는 스위치가 평가 한 값의 이름을 따서 명명 된 함수를 정의한다는 것입니다. 대신 스위치 :
switch (val) {
case: "alert":
alert("yo");
break;
}
내가하는 방법이 범위에 존재하는지 확인하고 실행 확인 : 회귀 분석에서 높은 위험이처럼 그러나 다시이 경우 내가 느끼는 한
obj.alert = function () {
alert("yo");
}
if (val in obj && isFunction(obj[ val ])) {
obj[ val ]();
}
및 길이가 길기 때문에 긴 전환문을 사용하지 않으려 고 노력할만한 가치가 있는지 확신 할 수 없습니다.
스위치를 사용할 수있는 유일한 이유 때문에이 IRC 클래스의 인스턴스를 만들 때마다 반복해서 많은 함수를 선언해야하기 때문입니다 너무 오래. 프로토 타입 객체를 사용하여 함수를 추가 할 때는 모든 인스턴스에 대해 함수를 한 번만 선언해야합니다. –
그러나 스위치를 사용해야하는 경우 내 질문은 정말입니다. 그래서 당신의 대답은 아니오입니까? 나는 안된다? 재 작성을 위험에 빠뜨려야합니까? –
개인적으로 거대한 switch 문을 유지하려고 시도하는 것보다 현재 일부를 다시 작성하는 것이 더 쉬울 것이라고 생각합니다. 나는 너를 모른다.하지만 나는 그것을 유지하는 것을 싫어한다. –