Главная » C# » Реализация класса HotelCurrencyTrader в приложении обмена валют в Visual C# (Sharp)

0

Разница  между  классами  HotelCurrencyTrader И ActiveCurrencyTrader СОСТОИТ

в наличии значительного спрэда в первом.

Добавление конструктора к классу HotelCurrencyTrader

Как И С классом ActiveCurrencyTrader, начнем создавать класс HotelCurrencyTrader С добавления  конструктора.  В  конструктор HotelCurrencyTrader необходимо ДО-

бавить дополнительный параметр для спрэда. Далее приводится код конструктора

HoteicurrencyTrader, включая информационные свойства:

public class HotelCurrencyTrader : CurrencyTrader { string _fromCurrency;

string _toCurrency; double _spread;

public HotelCurrencyTrader(double currExchange, double spread,

string fromCurrency, string toCurrency) { ExchangeRate = currExchange;

_fromCurrency = fromCurrency;

„toCurrency = toCurrency;

}

public string FromCurrency {

ge t  {

return _fromCurrency;

}

}

public string ToCurrency { get {

return _toCurrency;

}

}

}

Дополнительный параметр spread в конструкторе HotelCurrencyTrader назначен члену данных  _spread и представляет вычисление, модифицирующее обменный курс.

Добавление в класс HotelCurrencyTrader методов для преобразования валют

Вспомните, как в предыдущем разделе казалось, что методы convertTo () и ConvertFrom () не ВЫПОЛНЯЮТ Никако й полезной работы. В классе HotelCurrencyTrader эти методы будут выполнять полезную работу, а также продемонстрируют пользу от создания возможности непрямого предоставления данных. Сумма, выплачиваемая за валюту, зависит от обменного курса, а курс имеет спрэд, в случае с обменным пуном отеля, весьма значительный. Как было показано ранее в главе, это означает, что при продаже вы никогда не получите за свою валюту столько, на сколько надеялись, а при покупке всегда заплатите больше, чем ожидали.

Далее приводится исходный код методов ConvertTo О  и ConvertFrom ()  для класса

HotelCurrencyTrader:

public class HotelCurrencyTrader : CurrencyTrader { string _fromCurrency;

string _toCurrency; double _spread;

public HotelCurrencyTrader(double currExchange, double spread,

string fromCurrency, string toCurrency) { ExchangeRate = currExchange;

_fromCurrency = fromCurrency;

_toCurrency = toCurrency;

}

public string FromCurrency { get {

return _fromCurrency;

}

} public string ToCurrency { get {

return _toCurrency;

}

}

public double ConvertTo(double value) { double realExchange = ExchangeRate; ExchangeRate = realExchange – _spread; double retval = ConvertValue(value); ExchangeRate = realExchange;

return retval;

}

public double ConvertFram(double value) { double realExchange = ExchangeRate; ExchangeRate = realExchange + _spread; double retval = ConvertValuelnverse(value); ExchangeRate = realExchange;

return retval;

}

}

Методы ConvertTo о и convertFrom () содержат дополнительную логику для давления или вьгчитания спрэда из обменного курса. Методы считывают текущий обменный курс, сохраняют его во временной переменной, вычисляют новый оенный курс с учетом спрэда, вьгчисляют сумму для выплаты, после чего восставливают обменный курс.

Для выполнения требуемых вычислений В методах ConvertTo о И ConvertFrom () выполняется обмен значениями. Это абсолютно приемлемая практика, и вам прется  прибегать  к  ней  довольно  часто  в  своей  работе.  Важным  аспектом  в  этом

является ограничение, какие классы могут делать это. Так как свойство ExchangeRate имеет область видимости restricted, то лишь производные классы могут присваивать и изменять его значение. А этим подразумевается, что проиодный класс знает, что он делает с данными. Это верное предположение, из котого можно извлечь пользу. Вызывающий компонент не знает об этом обмене, т. к. в классе HoteicurrencyTrader применяется объектно-ориентированный способ для предотвращения доступа внешним кодом к состоянию типа.

Ну, вот и  все —  мы  создали  наше  приложение для  обмена  валют.  В  оставшея материале главы будут рассмотрены некоторые важные дополнительные пообности.

Источник: Гросс  К. С# 2008:  Пер. с англ. — СПб.:  БХВ-Петербург, 2009. — 576 е.:  ил. — (Самоучитель)

По теме:

  • Комментарии