4. Бағдарламалардағы абстракциялар
Бағдарлама қолданатын абстракцияның екі түрі бар: деректерді абстракциялау және басқару абстракциясы. Деректер абстракциясы бар мәселені шешу үшін қажетті нақты атрибуттарды анықтау арқылы нақты объектілерді модельдеу үшін қолданылады. Мысалы, мақсатты жіктеу үшін сыныпты модельдеу үшін сынып студенттердің жиынтығы ретінде модельденеді, мұнда әр студент үш форманың жиынтығы ретінде модельденеді (студенттің идентификаторы, студенттің аты, әріптік бағалар). Студенттердің жынысы, бойы, салмағы, мекен - жайы, спорттық қызығушылықтары және басқалары сияқты көптеген басқа сипаттамалары пайдаланылмайды, өйткені олар бар мәселені шешу үшін қажет емес. Деректерді абстракциялау деректерді ұсынудың әртүрлі әдістерін қолдану арқылы жүзеге асырылуы мүмкін.
Басқару абстракциясы бағдарламалық жасақтама құрылымдарының әртүрлі түрлерін олардың жалпы қасиеттеріне қарай әртүрлі топтарға жіктейді. Мысалы, мәлімдеме (түр операторы), операторлар блогы, таңдау конструкциялары шартты операторлар (if-then-else конструкциясы) немесе көп мәнді таңдау операторлары (case конструкциясы), анықталмаған итерация-конструкциялар тізбегінің шартты қайталануы, белгілі бір итерация-алдын ала анықталған итерациялардың нақты саны, процедуралық шақыру және функция шақыруы-басқарудың әртүрлі абстракциялары. Абстракциялардың басты артықшылығы-оңай өзгеретін және сақталатын жоғары деңгейлі бағдарлама құрылымының көрінісі.
4.1. Бағдарламалардағы абстракциялардың рөлі
Бағдарлама қолда бар соңғы шарттың талаптарын қанағаттандыратын болжамды есептеу күйіне жету үшін құрылымдық деректерді басқарудан тұрады.
Бағдарламалауды бірнеше деңгейде орындауға болады: машиналық бағдарламалау деңгейінде, құрастыру деңгейінде бағдарламалау, төмен деңгейлі процедуралық бағдарламалау, жоғары деңгейлі процедуралық бағдарламалау, декларативті бағдарламалау және т.б. Абстракциялар саны мен айқын басқару деңгейі жоғары деңгейлі бағдарламалау тілдері мен төмен деңгейлі бағдарламалау тілдерімен бөліседі. Абстракциялардың мақсаттарының бірі − бағдарламалық жасақтаманы минималды өзгерістермен қайта пайдалануды қамтамасыз ету, яғни талаптардың жоғарылауы немесе технологиялық өзгерістер кезінде бағдарламалық жасақтаманы дамыту шығындары минималды болуы.
Бағдарламалау тіліне байланысты деректер мен басқару арасындағы айырмашылық анық немесе түсініксіз болуы мүмкін:
1. Бағдарлама блогын деректер ретінде қарастыруға болады, ал бағдарлама динамикалық режимде жұмыс уақытында деректер түрінде құрылып, одан әрі бағдарлама блогына айналдырылуы мүмкін.
2. Бағдарлама Мета-бағдарламаларда болатындай басқа бағдарламаны деректер ретінде қолдана алады.
3. Сынып деректер абстракциялары мен басқару абстракцияларының бірыңғай пакетін құра алады және осы пакеттегі элементтерді ашық, қорғалған немесе жабық деп жариялау арқылы басқа есептеу объектілерінің әсерін реттей алады.
Бұрын айтылғандай, бағдарлама бір-бірімен ақпарат алмасатын бірнеше ішкі бағдарламалардан немесе модульдерден тұрады. Әзірлеуші реттейтін және инкапсуляция арқылы жасырылған ақпарат абстракцияның бөлігі болып табылады.
Инкапсуляция − бұл деректерді жасырудың табиғи шекарасы. Инкапсуляцияны ішкі бағдарламалар, объектілер мен сыныптар, модульдер немесе олардың тіркесімі арқылы жүзеге асыруға болады. Сыныптар деректер абстракцияларын да, басқару абстракцияларын да инкапсуляциялау арқылы ақпаратты жасыруды қамтамасыз етеді. Мұндай деректер мен басқару абстракцияларының көрінуін импорттау-экспорттау немесе мұрагерлікті пайдалану механизмі арқылы анық реттеуге болады. Экспорттау-импорттау механизмі екі элементтен тұрады: экспорттау механизмі арқылы инкапсуляцияланған деректерді немесе бағдарламалық модульдерді басқа модульдер мен бағдарламаларға іріктеп көрсетеді және импорттау механизмі арқылы модульден немесе бағдарламадан деректерді немесе бағдарламалық модульдерді шығарады. Экспорттау механизмі жабық деректерді ашық етеді, ал импорттау механизмі экспортталған элементті жергілікті ортада көруге мүмкіндік береді. Импорт пен экспортты бағдарламашы тікелей жариялайды.
Императивті бағдарламалауда деректер абстракциялары мен басқару абстракциялары бар негізгі бірлік ішкі бағдарлама немесе модуль болып табылады, объектіге бағытталған бағдарламалау парадигмасында негізгі бірлік Ішкі сынып немесе объект болып табылады − сыныптың немесе кіші сыныптың белсенді өкілі. Модульге негізделген тілдерде ішкі бағдарлама немесе деректер элементі модуль ішінде инкапсуляциялануы мүмкін және деректер элементін немесе ішкі бағдарламаны қолдану экспорт-импорт механизмін қолдану арқылы реттелуі мүмкін.
Бұл тарауда біз мәліметтер мен басқару абстракцияларын, бағдарлама бөліктері арасындағы ақпарат алмасуды және әртүрлі дерексіз бағдарламалық жасақтама құрылымдарын қарастырамыз. Дегенмен, императивті бағдарламалау парадигмасынан ерекшеленетін бағдарламалау парадигмаларына қатысты нақты мысалдар парадигмалар егжей-тегжейлі қарастырылғаннан кейін тиісті тарауларда сипатталатын болады.
Достарыңызбен бөлісу: |