2017-12-13 7 views
1

현재 큰 매핑 클래스를 수정하는 중입니다. 몇 가지 새로운 규칙이 등장하여 가장 좋은 옵션이 무엇인지 궁금하게 생각하게됩니다. setter VS Classic의 세 번째 연산 인 경우

지금과 같은 고전적인 매핑 기능 상상해

yyy.setType(xxx.getType); 
yyy.setSomething(xxx.getSomethigElse); 
yyy.setThisAsWell(xxx.getThatAsWell); 

을 그리고 내가 지금 확인하는 조건이 더 나은 무엇을 할 것인가?

final Boolean isRuleApplying = xxx.getRule == RULE; 
yyy.setType(
    isRuleApplying ? RULE_STUFF : xxx.getType 
); 
yyy.setSomething(
    isRuleApplying ? RULE_STUFF_OTHER : xxx.getSomethigElse 
); 
yyy.setThisAsWell(
    isRuleApplying ? RULE_STUFF_AGAIN : xxx.getThatAsWell 
); 

을 아니면 다른 경우 이전을 사용하는 것이 좋습니다 : (내가 할 수있는 체크 향후 유사한 조건을 필요가 없습니다 것을 알고)?

if (xxx.getRule == RULE) { 
    yyy.setType(RULE_STUFF); 
    yyy.setSomething(RULE_STUFF_OTHER); 
    yyy.setThisAsWell(RULE_STUFF_AGAIN); 
} else { 
    yyy.setType(xxx.getType); 
    yyy.setSomething(xxx.getSomethigElse); 
    yyy.setThisAsWell(xxx.getThatAsWell); 
} 

3 진수 연산을 사용하면 관리하기가 어려워지고 복잡해집니다 (매번 확인). 그러나 나는 다른 의견을 원했다.

참고 : 나는 많은 수의 try..catch를 사용하고 있습니다. if를 사용하면 try 블록을 복제하거나 모든 블록에 if를 추가하여 가독성을 떨어 뜨립니다.

+1

더 읽기 쉬운 것으로 보이는 부분을 사용하십시오. – Eran

+1

규칙보다는 기본 설정의 문제입니다. 왜 한 번 비교해도 똑같이 할 수 있다면 3 번 체크를 수행해야합니까? – Stultuske

답변

0

이 질문에 대한 답은 절대적으로 없습니다. 그것은 달려있다.

  • 세 가지 속성은 항상 어떤 값으로 설정하고, 항상 조건의 독립 같은 속성의 : 삼항 연산자

    , 당신은 즉시 참조하십시오.
  • 서로 다른 두 값을 볼 수 있으므로 독자는 쉽게 비교할 수 있습니다.

하지만 그 연산자에 익숙하지 않은 개발자 (잘못되었거나 우리입니까?)가 있으므로 코드를 사용하면 즉시 코드를 이해하는 대신 의미를 찾도록 할 수 있습니다 (나에게 LISP 배경이 있다면, 삼항 연산자는 항상 if 문처럼 자연스럽지 않다).

3 진 연산자를 사용하면 3 가지 조건 대신 1 가지 조건이 생깁니다. 그러나 응용 프로그램에서 실제로 아파하는 경우가 아니면 이러한 사소한 성능 효과는 무시해야합니다. 한편

if 문, 즉시 참조 :

  • 그것은 모든 속성에 영향을 미치는 하나의 조건입니다.
  • 두 상황에 대한 속성 조합을 가까이에서 볼 수 있습니다.

Java 초보자도 코드를 이해합니다.

그래서, 그것은에 따라 달라집니다

  • 동료는 세 가지 속성에 대한 단일 속성이나 값-세트에 대해 다른 값을 강조 할 것인지 여부를
  • 의 자바 유창.

물론이 모든 것은 객체 지향적이지 않습니다.코드 구조와 예산이 허락한다면 어쩌면 조건 대신 다형성을 사용하여 해결책을 찾을 수 있습니다.

+0

더 많은 답변을 주셔서 감사합니다 :) – JustADude

관련 문제