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


Фабричный метод (Factory Method)



Download 1,35 Mb.
Pdf ko'rish
bet107/140
Sana15.04.2022
Hajmi1,35 Mb.
#555128
1   ...   103   104   105   106   107   108   109   110   ...   140
Bog'liq
Экстремальное программирование Разработка через тестирование PDFDrive

Фабричный метод (Factory Method)
Как лучше всего созд авать объекты в случае, если вы хотите
обеспечить гибко сть при созд ании объектов? Вместо того чтобы
использовать конструктор, созд айте объект внутри специального
метод а.
Безусловно, конструкторы являются выразительным инструментом.
Если вы используете конструктор, всем, кто читает код , од нозначно
становится ясно, что вы созд аете объект. Од нако конструкторы, в
о собенно сти в Java, не обеспечивают д о статочной гибко сти.
В рассмотренном ранее «д енежном» примере при созд ании объекта
мы хотели бы возвращать объект иного класса. У нас есть след ующий
тест:
public void testMultiplication() {
Dollar five = new Dollar(5);
assertEquals(new Dollar(10), five.times(2));
assertEquals(new Dollar(15), five.times(3));
}
Мы хотели бы д обавить в программу новый класс Money, од нако мы
не можем этого сд елать, так как д ля тестирования нам нужен экземпляр
класса Dollar. Чтобы решить проблему, д о статочно д обавить в
программу д ополнительный уровень перенаправления – метод , который
буд ет возвращать объект иного класса. В этом случае мы сможем
о ставить выражения assert без изменений:


public void testMultiplication() {
Dollar five = 
Money.dollar(5)
;
assertEquals(new Dollar(10), five.times(2));
assertEquals(new Dollar(15), five.times(3));
}
Money
static Dollar dollar(int amount) {
return new Dollar(amount);
}
Такой метод называется 
фабричным методом
(Factory Method), так
как он пред назначен д ля созд ания объектов.
Нед о статок этого шаблона заключается в том, что пред назначение
фабричного метод а не очевид но: вы д олжны помнить о том, что этот
метод созд ает объекты, вместе с тем это обычный метод , а не
конструктор. Фабричный метод след ует использовать только тогд а,
когд а вы д ействительно нужд аетесь в гибко сти, которую он
обеспечивает. В противном случае д ля созд ания объектов вполне можно
использовать обычные конструкторы.

Download 1,35 Mb.

Do'stlaringiz bilan baham:
1   ...   103   104   105   106   107   108   109   110   ...   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