1)
"is-a" ierarxiyasi. Obyektga yo‘naltirilgan
tizimlarning muhim
elementi va "is-a" ierarxiyasining asosiy turi-yuqorida aytib o‘tilgan meros
tushunchasi. Meros - bu sinflar o‘rtasidagi munosabatni (ajdod / avlod
munosabatlari), bir sinf bir yoki bir nechta boshqa sinflarning strukturaviy
yoki funksional qismini oladi (mos ravishda bitta va ko‘p meros). Boshqacha
qilib
aytganda, meros mavhumliklar iyerarxiyasini yaratadi,
bunda kichik
sinflar bir yoki bir nechta yuqori sinflardan tuzilmani meros qilib oladi.
Ko‘pincha kichik sinf ajdod komponentlarini yaratadi yoki qayta yozadi.
Semantik jihatdan, meros "is-a" munosabatini tavsiflaydi. Masalan,
ayiq - sutemizuvchi, uy-ko‘chmas mulk, "Quick sort " - saralash algoritmi.
Shunday qilib, meros umumlashtirish-ixtisoslashuv
iyerarxiyasini vujudga
keltiradi.
2)
“part of” iyerarxiyasi. Agar "is a" iyerarxiyasi umumlashtirish /
ixtisoslashuv munosabatlarini aniqlasa, u holda "part of"
munosabatlar
yig‘indisi iyerarxiyasini kiritadi.
Tiplashtirish. Tiplashtirish – bu barcha obyektlar turlarining tavsifi;
Tur tushunchasi mavhum ma'lumotlar turlari nazariyasidan olingan.
Bizning maqsadlarimiz uchun atamalar turi va sinfi bir-birining o‘rnini
bosadi deb taxmin qilish kifoya. (Aslida, tur va sinf bir xil emas; ba'zi tillarda
ular farqlanadi. Masalan, Trellis / Owl tilining dastlabki versiyalari obyektga
ham sinf, ham turga ega bo‘lishga ruxsat bergan. Hatto Smalltalkda ham
SmallInteger, LargeNegativeInteger, LargePositiveInteger
sinflari bir xil
turdagi Integerga tegishli bo‘lsa-da, har xil sinflarga tegishli).
Tiplashtirish – bu boshqa sinf o‘rniga bir sinf obyektlarini ishlatishdan
himoya qilish usuli (kuchli tiplashtirish) yoki hech bo‘lmaganda bunday
foydalanishni nazorat qilishdir (zaif tiplashtirish).
Tiplashtirish bizni mavhumliklarimizni shunday
ifoda etishga majbur
qiladi, uni amalga oshirishda ishlatiladigan dasturlash tili dizayn qarorlariga
sodiq qoladi. Yozish konsepsiyasida turni moslashtirish g‘oyasi markaziy
o‘rinni egallaydi. Masalan, fizik birliklarni olaylik. Vaqtni masofaga bo‘lish
orqali biz og‘irlikni emas, tezlikni olamiz. Haroratni kuchga ko‘paytirishning
ma'nosi yo‘q, lekin masofani kuchga ko‘paytirishda – ma’no mavjud.
Bularning barchasi kuchli tiplashtirish misollaridir, bu yerda dastur sohasi
abstraksiyalarni ishlatish va kombinatsiyasiga
qoidalar va cheklovlar
qo‘yadi. Zaif tiplashtirish bilan ishlar biroz murakkablashadi. Zaif
tiplashtirish polimorfizm tushunchasi bilan chambarchas bog‘liq.
Dostları ilə paylaş: