Мне было интересно, можем ли мы применять шаблоны проектирования для написания кода для конвертации валюты, и если да, то что они будут? Предполагается, что показатели конверсии являются статическими, и мы можем жестко их кодировать.
Я думал об использовании «шаблона состояний», где каждое состояние представляет определенную валюту и имеет формулы, инкапсулированные в соответствующие методы для преобразования, например, toDollars (), toPounds () и т. д.
Другая возможность (не уверен, что это шаблон проектирования) - использовать функциональные объекты, которые конвертируют из определенной валюты в другую, и сохранять их как значения в 2-уровневой Hashtable, где ключом первого уровня является «from» валюта и ключ второго уровня - к валюте.
Существуют ли другие шаблоны проектирования, применимые к этой проблеме? Проблема на самом абстрактном уровне состоит в том, что у нас есть «m» сущности, и все они взаимно конвертируемы на основе определенных правил. Примерами являются преобразование значений часовых поясов друг в друга; календарные даты из разных типов календаря (григорианский / китайский) и т. д. друг в друга.
Спасибо и всего наилучшего!