Java - имя для денег [закрыто
Вопрос
Как я должен назвать свой класс, который хранит расходы/цены/суммы денег в CAD/USD как отдельный long
S за доллары и центы? У меня есть "Priceindollars", но мне это не очень нравится, и я всегда забываю об этом. Любые идеи?
РЕДАКТИРОВАТЬ: Очевидно, я должен использовать BigDecimal
, не изобретать колесо. Думаю, я просто использую это. Я многому научился, пытаясь сделать свой собственный класс, хотя.
Пожалуйста, посмотрите мой другой вопрос здесь!
Решение
Я бы пошел с любого Price
или же Cost
. Анкет Какой бы вы ни выбрали, вы можете подключить его, чтобы стать более конкретным.
Money
а также Currency
Похоже, что они будут атрибутами цены, не совсем подходящими как название самой цены. Просто мои 2 цента (не смог устоять перед каламбуром).
Другие советы
Во -первых, я не согласен со всеми, кто говорит использовать BigDecimal
. Анкет Даже если ваше «хранилище» BigDecimal
(что очень разумно), вы должны использовать свой собственный класс, потому что BigDecimal
Поля, параметры метода и т. Д., Не передает семантику. Обычно повторно используемые типы, такие как суммы валюты должен иметь свои собственные занятия.
Все это сказано, не пишите свой собственный. Для этого есть много библиотек, которые уже существуют и продумали многие проблемы для вас. Лично я бы начал с Joda-Money, Стивен Коулборн (из славы Джода-времени).
Currency
Money
Price
Value
(Я бы не стал, хотя)
Стоимость в денежном выражении :-)
Почему Money
Плохой выбор? Инкапсулируя цельные и дробные части вместе с java.util.Currency
в класс - лучший дизайн, чем BigDecimal
, Имо.
Мне не нравится ничего, что заканчивается «Indollars», потому что это излишне предрассудкам на ваш дизайн до USD или CAD. Почему это делает это, если идея более общая?
Я бы использовал "деньги"
http://www.answers.com/topic/cashДеньги в виде счетов или монет; валюта. Оплата за товары или услуги в валюте или чеком.
Это не специфично для любого типа валюты, множества глаголов, которые вы можете добавить к нему для преобразования и тому подобного.
Я позвонил своему MonetaryAmount
.
Я бы назвал это Amount
, держит java.util.Currency
и long
с единицами.
Вот мой собственный Amount
учебный класс что я использовал в разных проектах. Это реализует Comparable
и имеет toString
Метод для форматирования суммы для отображения (хотя она не учитывает ваш локаль для форматирования суммы).