Я использую веб-сервис для получения курсов валют для 4 разных валют. То, что я делаю до сих пор, заключается в том, чтобы получить эти ставки и сохранить их в матрице 4x4 таким образом, чтобы любое значение можно было легко извлечь без использования веб-службы каждый раз.Применение шаблонов проектирования для установки и получения значений матрицы валюты
Что я хочу знать, это лучший подход, используя шаблоны проектирования (и который будет более уместным), чтобы установить и получить значения этой матрицы. Сейчас я просто использовать что-то вроде этого:
public void setPoundToEuro(float value) {
currencyMatrix[0][1] = value;
}
public float getPoundToEuro() {
return currencyMatrix[0][1];
}
То, что я надеялся, что это что-то более абстрактное в зависимости от того, класс должен использовать эту услугу и получить эти значения. Что-то вроде другого класса, вызывающего метод, просто отправляющий две строки и тот же метод, возвращает любые курсы валют, в зависимости от полученных строк. В этом случае это будут «фунт» и «евро».
Я надеюсь, что дал понять, но если нет, сообщите мне. У меня таких вопросов не было, поэтому я надеюсь, что это не проблема, я пытаюсь обсудить и найти лучший подход к моей проблеме. Я уже видел это design patterns for currency conversion?, и это помогло мне прояснить что-то, но ситуация немного другая, поэтому я подумал, что разумно задать новый вопрос.
Используйте карту, в которой ключ является классом с параметрами FromCurrency и ToCurrency, а значение - BigDecimal с коэффициентом конверсии. Убедитесь, что вы переопределите 'equals()' и 'hashCode()' в классе, который вы собираетесь использовать в качестве ключа. – Marcelo
Спасибо за комментарий, Марсело. Это кажется выполнимым, но я надеялся, что подход к дизайну будет иметь вид. Во всяком случае, не могли бы вы привести более конкретный пример своей идеи? –
Я уверен, что это школьный проект, но это, скорее всего, в ваших интересах [не использовать поплавки или парные разряды для валюты] (http://stackoverflow.com/q/3730019/42962). – hooknc