2009-05-28 4 views
2

페니 값에 대한 상수를 만드는 것이 합리적입니까? 예를 들어 한 푼으로 금액을 줄이기 위해 필요한 경우C# 웹 응용 프로그램의 상수

amount -= Constants.StandardAmounts.Penny 

을 아니면 내가 귀찮게 단지 0.01를 사용하지해야합니까 당신은 코드가 말했다 경우 더 읽을 생각합니다.

+0

응용 프로그램이 미국 통화 만 사용합니까? –

답변

11

를 특정 예에서, 특정 상수는 정말 이해가되지 않습니다.

  • 이 매우 특정 비즈니스/도메인 로직의 요구 사항 이행 : 페니를 뺄 수있는 두 개의 가장 가능성이있는 시나리오는 그렇다면

    이 상수가 Penny = .01이어야한다, 그러나 StandardDeduction = .01

  • 더 처리 임의 수식/유체 수식 :

    그렇다면 숫자 만 사용하십시오.

"페니"는 무의미합니다. 유용한 정보를 추가하지는 않습니다. 이는 constant HelloWorld = "HelloWorld"을 신고하는 것과 같습니다. 응용 프로그램이 무엇을하고 있는지 모호하게 생각하는 프로그래머 (재무 계산)는 .01이 무엇인지 이해합니다. 상수는 목적에 따라 움직여야합니다.

1

상수를 사용합니다. 페니 (penny)의 가치가 바뀔 것이기 때문에가 아니라 응용 프로그램의 미래 유지 보수 담당자에게 명확성을주기 위해서입니다.

편집 : 나는이 값이 사용될 장소의 수를 고려할 것입니다.

0

당신은 더 나은 가독성을 변경할 수 있습니다

amount -= Standards.USCurrency.Penny 
0

나는 방법으로 감소시키고 그 방법에 적절하게 이름을 붙일 것이다 (즉, 제목에 페니가없는 것을 멀리한다). 따라서 예를 들어 슈퍼마켓 응용 프로그램을 가지고 있고 모든 고객이 1 페니 할인을 받으면 DeductCustomerLoyaltyAmount()를 호출하면됩니다. 이것은 다음과 같은 장점이있다 : 지금의 코드를 읽는

  1. 누구나가 감소하는 일이 일어나고 이유의 전체 이해를 가지고있다.

  2. 메서드의 의미에 영향을주지 않고 감소 값을 변경할 수 있습니다.

  3. 세계화 코드 (다른 통화를 처리하기 위해)는 중앙 집중식입니다.