Kotlin for Android Developers



Download 1,04 Mb.
Pdf ko'rish
bet106/125
Sana11.08.2021
Hajmi1,04 Mb.
#144654
1   ...   102   103   104   105   106   107   108   109   ...   125
Bog'liq
Kotlin for Android Developers Learn Kotlin the Easy Way While Developing an Android App ( PDFDrive )

24.2 Delegation
The
delegation pattern²⁶
is a really useful pattern that can be used to extract responsibilities from a
class. The delegation pattern is supported natively by Kotlin, so it prevents from the need of calling
the delegate. The delegator just needs to specify which instance implements the interface.
In our previous example, we can specify how the animal flies through the constructor, instead of
implementing it. For instance, a flying animal that uses wings to fly can be specified this way:
1
interface CanFly {
2
fun fly()
3
}
4
5
class Bird(f: CanFly) : CanFly by f
We can indicate that a bird can fly by using the interface, but the way the bird uses to fly is defined
through a delegate that is defined in the constructor, so we can have different birds with different
flying methods. The way an animal with wings flies is defined in another class:
²⁶
https://en.wikipedia.org/wiki/Delegation_pattern


24 Interfaces and Delegation
114
1
class AnimalWithWings : CanFly {
2
val wings: Wings = Wings()
3
override fun fly() = wings.move()
4
}
An animal with wings moves its wings to be able to fly. So now we can create a bird that flies using
wings:
1
val birdWithWings = Bird(AnimalWithWings())
2
birdWithWings.fly()
But now wings can be used with another animals that are not birds. If we assume that bats always
use wings, we could instantiate the object directly where we specify the delegation:
1
class Bat : CanFly by AnimalWithWings()
2
...
3
val bat = Bat()
4
bat.fly()

Download 1,04 Mb.

Do'stlaringiz bilan baham:
1   ...   102   103   104   105   106   107   108   109   ...   125




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