Pergunta

O que devo nomear minha classe que armazena custos/preços/quantias de dinheiro em CAD/USD como separado longS por dólares e centavos? Eu tenho "PriceIndollars", mas eu realmente não gosto disso, e sempre esqueço. Alguma ideia?

Editar: aparentemente eu deveria usar BigDecimal, não reinvente a roda. Acho que vou usar isso. Eu aprendi muito tentando fazer minha própria aula.

Por favor, veja minha outra pergunta aqui!

Foi útil?

Solução

Eu iria com qualquer Price ou Cost. Qualquer que seja o que você escolher, você pode subclasse -o para obter mais específicos.

Money e Currency Parece mais que seriam atributos do preço, não realmente adequados como o nome do próprio preço. Apenas meus 2 centavos (não resistiram ao trocadilho).

Outras dicas

Em primeiro lugar, eu discordo de todos que dizem para usar BigDecimal. Mesmo que o seu 'armazenamento de apoio' seja BigDecimal (o que é muito sensato), você deve usar sua própria classe porque ter BigDecimal campos, parâmetros de método, etc, não transmite semântica. Tipos comumente reutilizados, como valores de moeda deve tem suas próprias aulas.

Tudo isso dito, não escreva o seu. Existem muitas bibliotecas para isso que já existem e pensaram em muitos dos problemas para você. Pessoalmente, eu começaria com Joda-Money, de Stephen Colebourne (da fama de Joda-Time).

  • Currency
  • Money
  • Price
  • Value (Eu não faria)

Valor monetário :-)

Por que é Money Uma má escolha? Encapsular peças inteiras e fracionárias junto com java.util.Currency em uma aula é um design melhor do que BigDecimal, IMO.

Não gosto de nada que termine em "Indollars", porque prejudica desnecessariamente seu design para USD ou CAD. Por que fazer isso se a ideia é mais geral?

Eu usaria "dinheiro"

http://www.answers.com/topic/cashDinheiro na forma de contas ou moedas; moeda. Pagamento por bens ou serviços em moeda ou por cheque.

Não é específico para nenhum tipo de moeda, muitos verbos que você pode adicionar a ele para conversões e coisas assim.

Eu chamei o meu MonetaryAmount.

Eu chamaria isso Amount, segurando um java.util.Currency e a long com as unidades.

Aqui está meu próprio Amount classe que eu usei em projetos diferentes. Implementa Comparable e tem um toString Método para formatar o valor da exibição (embora não leve seu local em consideração para a formatação do valor).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top