Какой лучший шаблон дизайна для форматирования чисел? - PullRequest
2 голосов
/ 26 января 2009

Мне нужно написать код, который будет форматировать значение в соответствии с указанными параметрами.

В настоящее время можно выбрать несколько параметров форматирования: округление / усечение числа с заданной точностью, добавление префикса (например, $) или постфикса (например,%), группирование тысяч (применение запятых), добавление числовых сокращений (КМБ) ).

Так, например число 1857 может отображаться как $ 2K или $ 1,86K или $ 1,867

Сначала я подумал об использовании шаблона Decorator для этого, но я не уверен, потому что форматеры должны применяться в определенном порядке, например. сначала мне нужно применить преобразование в КМБ: 1857 -> 1,857 К, затем округлить до 1,86 К

Есть ли у вас какие-либо предложения?

Спасибо, матали

Ответы [ 2 ]

12 голосов
/ 27 января 2009

Нет, используйте параметры java.text.NumberFormat, которые уже доступны для вас. Они уже полностью интернационализированы.

0 голосов
/ 27 января 2009

Если не существует существующей реализации, отвечающей вашим потребностям, есть другие варианты, кроме Decorator:

Если вы можете разложить форматирование в правилах (десятичный разделитель, разделитель тысяч, валюта), тогда можно использовать цепочку ответственности (http://www.dofactory.com/Patterns/PatternChain.aspx), где каждый блок обрабатывает правило, и вы можете запустить ее в конкретный заказ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...