コスト/価格/金額をCAD/USDlong
でドルとセントの別々のsとして保存するクラスには、何という名前を付ける必要がありますか?私は「PriceInDollars」を持っていますが、それはあまり好きではなく、いつも忘れています。何か案は?
編集:どうやら私はBigDecimal
車輪の再発明ではなく、使用する必要があります。私はそれを使うと思います。しかし、私は自分のクラスを作ろうとして多くのことを学びました。
ここで私の他の質問を見てください!
私はまたはのどちらかで行きPrice
ますCost
。どちらを選択しても、サブクラス化してより具体的にすることができます。
Money
そして、Currency
それらは価格の属性であるように見えますが、価格自体の名前としては実際には適していません。ちょうど私の2セント(しゃれに抵抗できませんでした)。
第一に、私はを使用すると言うすべての人に同意しませんBigDecimal
。'バッキングストレージ'がBigDecimal
(非常に賢明です)であっても、BigDecimal
フィールドやメソッドパラメータなどがあるとセマンティクスが伝達されないため、独自のクラスを使用する必要があります。通貨額などの一般的に再利用されるタイプには、独自のクラスが必要です。
とはいえ、自分で書くのはやめましょう。このためのライブラリはすでにたくさんあり、多くの問題を検討してきました。個人的には、(Joda-Timeで有名な)StephenColebourneによるJoda -Moneyから始めます。
金銭価値 :-)
Currency
Money
Price
Value
(しかし、私はしません)なぜMoney
悪い選択ですか?java.util.Currency
全体および小数部分をクラスにカプセル化することはBigDecimal
、IMOよりも優れた設計です。
「InDollars」で終わるものは好きではありません。なぜなら、それはあなたのデザインをUSDやCADに不必要に偏見させるからです。アイデアがより一般的である場合、なぜそれを行うのですか?
私はそれを、ユニットでAmount
ajava.util.Currency
とaを持って呼ぶでしょう。long
これは、私がさまざまなプロジェクトで使用した自分のAmount
クラスです。Comparable
表示用に金額をフォーマットする方法が実装されtoString
ています(ただし、金額のフォーマットにはロケールが考慮されていません)。
「現金」を使います
http://www.answers.com/topic/cash 紙幣または硬貨の形のお金。通貨。通貨または小切手による商品またはサービスの支払い。
通貨の種類に固有のものではなく、変換などのために追加できる動詞がたくさんあります。
私は私のと呼んでいMonetaryAmount
ます。