Реалізація класу HotelCurrencyTrader в додатку обміну валют в Visual C # (Sharp)

Різниця між класами 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 е: ил – (Самовчитель)

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*