Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4444УМК17.11.05каз_Delphi.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
1.42 Mб
Скачать

Мұрагерлену

ОББ оқи бастаған бағдарламалаушыларды ең бастысы объекттер басқа объекттердің қасиеттері мен функционалдық мүмкіндіктерін мұрагерлікке иеленіп, ата-ана-ұрпақ қатынасын және объекттік иерархияларды тудыратыны таң қалдырады. Бұл бағдарламалық код бірнеше функционалдық жіктерге бөліне алатынын білдіреді. Функционалдық мүмкіндіктер (кез келген бір жіктің) бағдарламалық кодтың ортақ фрагментіне негізделетін, әртүрлі қасиеттері бар класстарға енгізілуі мүмкін. Жікке бөліну және кодты бірлесіп пайдалану мүмкіндігі, объекттер бірінен бірі шекті өсетін класстардың иерархиясын жобалауға мүмкіндік тудырады. Бұл қазіргі таңдағы тұрған іске өте ұқсас.

Алдыңғы класстың негізінде жаңа классты құру үрдісі мұрагерлену деп аталады. Мұрагерлену туынды классқа (немесе класс-ұрпақ) алғы ата-класының (немесе ата-тұяғының) барлық функционалдық мүмкіндіктерін иелендіреді. Бұған қоса, туынды класс өзіндік есептерді шығару үшін алғы ата-класының мүмкіндіктерін кеңейтеді.

Ескерту. СИ тліндегі класстардың атауы көп жағдайда С әрпінен, ал Object Pascal тілінде Т әрпінен басталады.

Мысал үшін сізде әртүрлі жылжымалы құралдардың сипаттамалары мен мүмкіндіктерін анықтайтын CVehicle деп аталатын өзіндік класс бар болсын деп жориық. Бұл өзіндік класстың негізінде сіз әртүрлі объекттерді – жылжымалы құралдарды құра аласыз. Мысалы, тікелей CVehicle класынан сіз CLandVehicle, CWaterVehicle, CAirVehicle и CSpaceVehicle класстарын ала аласыз. Әрбір туынды класс CVehicle-дың барлық мүмкіндіктерін мұрагерлікке иеленеді, сонымен қатар қосымша мәліметтерді – жылжымалы құралдың әрбір типіне класс анықтамасын айқындайтын мүшелері мен әдістерін де қамтиды. Ары қарай класс анықтамалары осы туындаған бірінші деңгейлі класстардан жаңа класстарды тудыру арқылы одан ары айқындалуы мүмкін. CLandVehicle-дан CTruck, CCar, CMotocycle тудыруға болады. CWaterVehicle класының негізінде сіз CJetSki, CBoat и CSubmarine класстарын құра аласыз. CAirVehicle класы CJet, CHelicopter и CGlider класстарын тудыруы мүмкін. CSpaceVehicle класы CStarShip, CShuttlecraft класстарын тудырады. Бұл класстардың барлығы CVehicle өзіндік класынан туындап, класстардың қарапайым иерархиясын құрайды.

Иерархияның әр деңгейінде класстар тығыз орналасқан сайын, жаңадан пайда болған класстарда код көбірек қайталануы мүмкін. Оның қулығы объекттік иерархияның кез келген деңгейінде өзіндік класстардың атрибуттары мен операцияларын барлық объекттерге ортақ етуде және өзіндік класстардан арнаулы класстарды алуда. Мұрагерлену сіз мүмкіндігіңізше қолдануға тиіс тағы да бір қызық эффект береді: толық жөнделген кішігірім өзіндік класстар берікті. Сіз күрделі класстарды құру барысында туынды класстарға енгізілген код бөлігіне ғана назар аударуыңыз қажет. Жаңа классты құрудың әр итерациясында толық жөнделген класс-ұрпақ кодына енгізілетін (яғни бірге қосылатын) кодтың кішігірім саны мұрагерленуі мүмкін. Туынды класстардағы кез келген «қоңыздардың» пайда болуын осы класстың жаңадан туындаған кодынан байқауға болады. Егер класстарды кішігірім, өзіндік мақсаттарға толық жету жолына бейімдеу арқылы жобаласа, онда класстар иерархиясының кез келген деңгейіндегі жөндеу үрдісі біраз ықшамдалады.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]