Экстремальное программирование. Разработка через тестирование


 Равенство для всех, вторая серия



Download 1,35 Mb.
Pdf ko'rish
bet17/140
Sana15.04.2022
Hajmi1,35 Mb.
#555128
1   ...   13   14   15   16   17   18   19   20   ...   140
Bog'liq
Экстремальное программирование Разработка через тестирование PDFDrive

6. Равенство для всех, вторая серия 
$5 + 1 °CHF = $10, если курс обмена 2:1
$5 * 2 = $10
Сд елать переменную amount закрытым (private) членом
Побочные эффекты в классе Dollar?
Округление д енежных величин?
equals()
hashCode()
Равенство значению null
Равенство объектов
5 CHF * 2 = 1 °CHF
Дублирование Dollar/Franc
Общие операции equals()
Общие операции times()
В книге 
Crossing to Safety
автор Вэлленц Стегнер (Wallance Stegner)
описывает рабочее место од ного из персонажей. Кажд ый инструмент
наход ится на пред назначенном д ля него месте, пол чисто вымыт и
под метен, повсюд у прево сход ный поряд ок и чистота. Од нако чтобы
д обиться под обного положения вещей, персонаж не д елал никаких
специальных под готовительных процед ур. «Под готовка была д елом
всей его жизни. Он под готавливался, затем убирался на рабочем месте».
(Конец книги заставил меня громко рассмеяться в бизнес-классе
трансатлантического «Боинга-747». Так что если решите ее прочитать,
читайте с о сторожно стью.)
В главе 5 мы д обились успешного выполнения теста. Это значит,
что требуемая функционально сть реализована. Од нако чтобы сд елать
это быстро, нам пришло сь прод ублировать огромный объем код а.
Теперь пришло время убрать за собой.
Мы можем сд елать так, чтобы од ин из разработанных нами классов
стал производ ным от д ругого. Я попробовал сд елать это, од нако понял,
что в этом случае ничего не выигрываю. Вместо этого уд обнее созд ать
суперкласс, который станет базовым д ля обоих разработанных нами
классов. Ситуация проиллюстрирована на рис. 6.1. (Я уже пробовал так
по ступить и пришел к вывод у, что это именно то, что нужно, од нако


прид ется приложить усилия.)
Рис. 6.1.
Общий суперкласс д ля д вух разработанных нами классов
Для начала попробуем реализовать в базовом классе Money общий
д ля обоих производ ных классов метод equals(). Начнем с малого:
Money
class Money
Запустим тесты – они по-прежнему выполняются. Конечно же, мы
пока не сд елали ничего такого, что нарушило бы выполнение наших
тестов, од нако в любом случае лишний раз запустить тесты не
помешает. Теперь попробуем сд елать класс Dollar производ ным от
класса Money:

Download 1,35 Mb.

Do'stlaringiz bilan baham:
1   ...   13   14   15   16   17   18   19   20   ...   140




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish