2014-03-04 4 views
2

내 웹 응용 프로그램 중 하나에서 코드 작성기에서 문자열 작성기를 사용하고 있습니다.if else condition을 많이 사용하는 것이 좋은 습관입니까?

StringBuilder str = new StringBuilder(); 
if (isLogIN != false) 
{ 
    if (isValidUser == true) 
    { 
     str.Append("<div id='sfBtnSubmitWrapper' >"); 
     if (CheckIfAlreadyPlayed()) 
     {       
      str.Append("<input type='button'"); 
      str.Append("value='Predict Now' class='sfBtn' id='sfBtnSubmitAnswer' />");        
     } 
     else 
     { 
      str.Append("<input type='button'"); 
      str.Append("value='Already participated.' class='sfBtn' id='sfBtnSubmitAnswer' />"); 
     } 
     str.Append("</div>"); 
    } 
    else 
    { 
     if (CheckEarnedGame()) 
     { 
      str.Append("<div id='sfBtnSubmitWrapper' ><input type='button'"); 
      str.Append("value='Predict Now' class='sfBtn' id='sfBtnSubmitAnswer' />"); 
      str.Append("<p style='color:green'>You have reached your daily limit"); 
      str.Append("but your earned games still remain.</p>"); 
      str.Append("</div>"); 
     } 
     else 
     { 
      str.Append("<div id='sfSettingInfo'>"); 
      str.Append("<a class='ClosePopupImg' id='closeOptionDiv' title='Close'></a>"); 
      str.Append("<span id='errorLimitmsg'>"); 
      str.Append("<p style='color:red'>Sorry !!!</br>You have crossed"); 
      str.Append("your limit of games.</p></span><span id='btnPlayMore'"); 
      str.Append("class='sfBtn'>Play More"); 
      str.Append("</span><div id='optionDiv'></div></div>"); 
     } 
    } 
} 

내가 내 진짜 code.I에 사용하고 (다른 경우) 훨씬 더 상태가 조금이 경우 다른 조건을 많이 사용하는 것이 좋습니다이거나 할 다른 방법이 있는지 혼동이 오전 그것.

+0

너무 광범위 (모든 블록/기능은 공통 인터페이스에서 상속 클래스의 방법이 될 것이다)에서 모든 코드 블록을 추출하려고해야 나를. – Sadique

+0

@Acme 위보다 다른 방법을 제안 해 주시겠습니까? –

+0

요구 사항을 지정하지 않았습니다. 당신은 많은 'if-else'가 좋거나 나쁘다는 질문을 받았을 뿐이며 아무 대답도 없다. 그래도 코드는 괜찮은 것 같습니다. – Sadique

답변

4

당신이 말하는 것은 Cyclomatic complexity이며, 그렇게 큰 것은 아닙니다.

새로운 if 문을 추가 할 때마다 코드가 따라갈 수있는 또 다른 경로가 essencially 작성되므로 복잡합니다.

그렇다면 if/else 문을 사용하는 것은 나쁘지 않습니다. 실제로 if/else 문 없이는 코드를 작성할 수 없습니다.

하지만 이미 코드를 보면 알 수 있듯이 약간 더러운 것처럼 보입니다.

그럼 어떻게해야합니까?

소프트웨어 디자인 및 디자인 패턴에 오신 것을 환영합니다.

매우 일반적인 디자인 패턴은 종종 code smells 이러한 종류의 동안, 나는 기초를 가져온 다음 DoFactory까지 머리와 몇 가지 일반적인 패턴에 대한 모든 읽기 위해 S.O.L.I.D 원칙을 통해 이동하여 시작할 것이라고 할 수 있습니다.

이 경로를 시작하면 에 대한 간단한 솔루션보기가 example으로 시작됩니다.

0

당신은 기능에 다음 추상화에 의해 실행을 위임하려고한다 "경우"에 대한

관련 문제