Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Объектілі-бағытталған программалаудың негізгі принциптері






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

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

Қ атынауды шектеу - абстракцияны іске асыратын жеке элементтерін шектеу. Қ атынауды шектеу қ ажеттігі абстракцияны сипаттауда екі бө лікті шектеуді қ арастырады:

· Интерфейс абстракцияны жү зеге асырудың қ олжеткізуге мү мкіндігі бар элементтің жиынтығ ы.

· Реализация немесе жү зеге асыру. Абстракцияны жү зеге асырудың қ олжеткізуге мү мкіндігі жоқ элементтің жиынтығ ы.

Модульділік - программалық жү йелерді қ ұ руда программаны жеке бө ліктер тү рінде жү зеге асыру принципі.

Иерархиялық - абстрактордың реттелген немесе ранжирленген жү йесі. Иерархиялық принципі программалық жү йелерді қ ұ руда иерархияларды қ олдануды қ арастырады. Объектілі бағ ытталғ ан программалауда иерархияның екі тү рі қ олданылады:

· “бү тін / бө лік“ иерархиясы кейбір абстрактор қ арастырып отырғ ан абстракцияғ а оның бө лігі ретінде кіретінін кө рсетеді. Иерархияның бұ л нұ сқ асы жобалаудың ә р кезең дерінде жү йені бө ліктерге бө лу процесінде қ олданылады.

· “жалпы / жеке” иерархиясы қ андай да бір абстракция, басқ а абстракцияның жеке жағ дайы болатынын кө рсетеді. Мысалы, тамақ танатын ү стел ү стелдің нақ ты тү рі, ал ү стел жихаздың нақ ты тү рі. Иерархияның бұ л нұ сқ асы класс қ ұ рылымын қ ұ руда кү рделі кластар қ арапайым кластар негізінде оларғ а жаң а сипаттамалар қ осу жолымен қ ұ рылғ ан кезде қ олданылады. Объектілі бағ ытталғ ан программалаудың негізгі механизмдерінің бірі жалпы жеке иерархиясында қ асиеттерді тұ қ ымқ аулау. Тұ қ ымқ уалау абстрактор арасындағ ы қ атынас. Бұ л кезде қ андай да бір абстракция бір немесе бірнеше басқ а абстракцияның қ ұ рылымдық немесе функционалдық бө лігін қ амтиды.

Типтеу - объектілер қ асиеттеріне салынатын жә не ә р тү рлі типті абстракцияның ө зара алмасуына жол бермейтін шектеу. Типтеу приципін қ олдану:

· Программалық объектіге қ олданатын мү мкін емес амалдармен байланысты қ ателерді ертерек табуғ а;

· Қ ұ жаттауды жең ілдетуге;

· Эффективтік кодты генерациялауғ а мү мкіндік береді.

Параллельділік - бірнеше абстракцияның қ асиеттері бір уақ ытта активт кү йде болады.

Тұ рақ тылық - абстракцияның процестен тә уелсіз болу қ асиеті.

Осы аталғ ан 7-принциптің тө ртеуі жү зеге асырылатын болса, онда тіл – объектілі бағ ытталғ ан болып саналады.

3. Объектілі-бағ ытталғ ан программалаудың негізгі қ асиеттері:

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

Инкапсуляция. Кластың мә ліметтер структурасы сыртынан Си тіліндегі структурағ а жә не Паскальда немесе QuickBasic-тегі жазба тә різді объектілі бағ ытталғ ан тілдер мә ліметтерінің типіне ұ қ сас. Сондық тан, осындай структура элементтері (класс мұ шелері) тек мә ліметтер ғ ана емес, сондай-ақ ә дісте (яғ ни процедура мен функция) бола алады. Мұ ндай біріктіру – инкапсуляция деп аталады.

Жалпы инкапсуляция – бұ л принцип. Мұ нда кез-келген класс қ ара жә шік тә різді қ арастыру керек. Яғ ни – класты қ олданушы класстың тек интерфэйстік бө лігін ғ ана қ олдануы жә не кө руі керек жә не оның ішіне кірмеуі керек. Сондық тан, мә ліметтерді класта – оғ ан кіру рұ қ саты оқ у жә не жазу бойынша тікелей емес, ә діс кө мегімен жү зеге асырылатын тү рде ғ ана инкапсуляция жасау қ абылданғ ан. Инкапсуляция принципі – класстар арасындағ ы байланыс санын минималдайды жә не соғ ан сә йкес класстың тә уелсіз реализациясын жә не модификациясын бекітеді.

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

Жай жә не кү делі палиморфизм. Кез – келген прогаммалау тілінде класстар иерархиясын қ ұ ру ү шін полимарфизм механизмі қ арастырылғ ан. Ол иерархияның ә р тү рлі дең гей класстары ү шін қ андай да бір аты бойынша біріккен ә дістің ә р тү рлі аспектілерін анық тауғ а мү мкіндік береді. Полимарфизмді жай жә не кү рделі деп бө леді. Жай полимарфизм ерте байланысу механизміне негізделеді. Ал кү рделі полимарфизм кеш байланысу механизмін қ олданылады.

Жай немесе статикалық полимарфизм С++ тілінде компиляция кезінде қ олданылады жә не функцияларды қ айта анық тау механизмі кө мегімен іске асырылады. Мұ ндай полиморфты функциялар С++ -те қ айта анық талатындар деп аталады. Жалпы ережелерге сә йкес олар қ айталанатын параметр типімен жә не сигнатурамен яғ ни жіберілетін параметр сонымен типімен жә не кезектесу ретімен ерекшеленеді.

Мұ рагерлік. Мұ рагерлік – класс алдындағ ы ұ рпақ тың барлық қ асиеттерін жә не ә дістерін сақ тай отырып, бір кластың басқ а кластан пайда болу мү мкіндігі. Мұ рагерлік қ атынасымен байланысқ ан кластар жиынтығ ы – иерархия деп атайды. Нақ тырақ айтқ анда, объект келесі объектінің негізгі қ асиеттерін мұ ра ете алады жә не тек оғ ан ғ ана сә йкес кескіндер қ оса алады. Мұ рагерлік маң ызды, себебі ол кластар иерархиясын қ олдану ү лкен информация лектерін басқ арылатындай етеді.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.