Не нужно увлекаться этим, особенно если у вас статический коэффициент конверсии. Жесткое программирование всего с функциями наподобие toPounds () не кажется разумным, если у вас мало валют. API-интерфейс типа convert (int amountInFixedPoint, строка fromCurrency, строка toCurrency) гораздо более гибок.

ыло интересно, могли бы мы применить шаблоны проектирования для написания кода для конвертации валюты, и если да, то какими они будут? Предполагается, что показатели конверсии являются статическими, и мы можем жестко их кодировать.

Я подумал об использовании «шаблона состояний», где каждое состояние представляет определенную валюту и имеет формулы, инкапсулированные в соответствующие методы для преобразования, например, toDollars (), toPounds () и т. д.

Другая возможность (не уверен, что это шаблон проектирования) - использовать функциональные объекты, которые конвертируют из определенной валюты в другую, и сохранять их как значения в 2-уровневой Hashtable, где ключ первого уровня - это валюта «из», а ключ второго уровня это «к» валюте.

Есть ли другие шаблоны проектирования, которые можно применить к этой проблеме? Проблема на самом абстрактном уровне состоит в том, что у нас есть «m» сущности, и все они взаимно конвертируемы на основе определенных правил. Примерами являются преобразование значений часовых поясов друг в друга; календарные даты из разных типов календаря (григорианский / китайский) и т. д. друг в друга.

Спасибо и всего наилучшего!