Бақылау сұрақтарға конспект: Мұрагерлік және полиморфизм



бет14/14
Дата25.05.2022
өлшемі56,39 Kb.
#35561
түріКонспект
1   ...   6   7   8   9   10   11   12   13   14
Байланысты:
Жиенбай Ердаулет ИТК-91 Бақылау сұрақтарға конспект

Әдістерді қайта жүктеу.
Артық жүктеме дегеніміз - әртүрлі атаулармен бірдей атпен бірнеше әдіс жасау мүмкіндігі. Төмендегі Java кодын қараңыз.
Жоғарыда аталған бағдарламаға сәйкес, А класында бірдей әдіс бар екі әдіс бар. Бірінші сумма әдісі екі параметрге ие. Екінші қосынды әдісі үш параметрге ие. А типті объектіні құру кезінде және шақырудың қосындысы (2,3), екі параметрі бар қосынды әдісін шақырады (int a, int b) және 5 қайтарады, А типті объектіні құру кезінде және шақырудың қосындысы (2) , 3,4), ол үш параметрі бар басқа қосынды әдісін атайды, олар қосындысы (int a, int b, int c) және 9-ны қайтарады.
Әдіс атауы бірдей, бірақ параметрлер саны әр түрлі. Бір нысанды басқаша ұстайтындығын байқауға болады. Бұл түсінік шамадан тыс жүктеме ретінде белгілі. Оны статикалық байланыстыру деп те атайды немесе уақыт полиморфизмін құрастырады.
Сондай-ақ, әртүрлі деректер түрлерімен шамадан тыс жүктелуі мүмкін. Төмендегі Java кодын қараңыз.
Жоғарыда аталған бағдарламаға сәйкес, А класы бірдей екі әдіспен тұрады. Қосынды (int a, int b) әдісі екі бүтін санды алады. Қосынды (екі еселенген b) екі қос мәнді алады. А типті объектіні құру кезінде және шақырудың қосындысы (2,3) ол қосындыға (int a, int b) қоңырау шалып, 5. мәнін қайтарады, қосындыға (3.4, 5.6) қоңырау шалғанда ол қосынды шақырады (екі еселенген есе) b) және 9.0 мәнін қайтарыңыз. Бұл мысалда әдістер бірдей аталады, бірақ айнымалылардың басқа түрі. Бұл сонымен қатар шамадан тыс жүктеме.

Рефакторинг.
Рефакторинг, немесе кодты қайта құру, кодты қайта құру, алгоритмдерді эквивалентті түрлендіру – оның сыртқы әрекетіне әсер етпейтін және оның жұмысын түсінуді жеңілдетуге бағытталған бағдарламаның ішкі құрылымын өзгерту процесі [1] [2]. Рефакторинг кішігірім, эквивалентті (яғни мінез-құлықты сақтайтын) түрлендірулер сериясына негізделген. Әрбір түрлендіру шағын болғандықтан, бағдарламашыға оның дұрыстығын қадағалау оңайырақ және сонымен бірге бүкіл реттілік бағдарламаның айтарлықтай қайта құрылымдауына және оның жүйелілігі мен анықтығын жақсартуға әкелуі мүмкін.
Бағдарламалауды үйрену барысында код жазуға көп уақыт кетеді. Көптеген әзірлеушілер бұл олардың болашақ жұмысы деп санайды. Бұл ішінара дұрыс, бірақ бағдарламашының міндеттеріне кодты сақтау және рефакторинг кіреді.
Рефакторингтің мақсаты - бағдарлама кодын түсінуді жеңілдету; онсыз рефакторингті сәтті деп санауға болмайды.

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


Екінші жағынан, бағдарламалық қамтамасыз етудің функционалдығын кеңейту үшін жүзеге асырылатын рефакторингті реинжинирингтен ажырату қажет. Әдетте, негізгі рефакторингтер реинжинирингтен бұрын болады.
Кодты әзірлеу кезінде рефакторинг дәйекті түрде қолданылуы керек. Оны жүзеге асырудың негізгі ынталандырулары келесі міндеттер болып табылады:қабылданған архитектуралық шешімге сәйкес келмейтін жаңа функцияны қосу қажет;себептері бірден анықталмаған қатені түзету қажет;
бағдарламаның күрделі логикасынан туындаған команданы дамытудағы қиындықтарды жеңу.

Көптеген жолдармен рефакторинг кезінде тәжірибелік интуицияға сүйенген дұрыс. Дегенмен, рефакторингті қажет ететін кейбір көрінетін код иістері бар:


1.кодтың қайталануы;
2.ұзақ әдіс;
3.тамаша сынып;
4.параметрлердің ұзақ тізімі;
5.Ашкөз функциялар басқа объектінің деректеріне шамадан тыс қол жеткізетін әдіс болып табылады;
6.артық уақытша айнымалылар;
7.деректер кластары;
8.топталмаған деректер.

Кодыңызды қайта өңдеу


Бағдарламалауда рефакторинг термині бағдарламаның бастапқы кодын оның сыртқы әрекетін өзгертпей өзгертуді білдіреді. Экстремалды бағдарламалауда және басқа да икемді әдістемелерде рефакторинг бағдарламалық жасақтаманы әзірлеу циклінің ажырамас бөлігі болып табылады: әзірлеушілер кезектесіп жаңа сынақтар мен функционалдылықты жасайды, содан кейін оның жүйелілігі мен ашықтығын жақсарту үшін кодты қайта өңдейді. Автоматтандырылған бірлік сынағы рефакторинг бар функционалдылықты бұзбауын қамтамасыз етеді.
Рефакторинг бастапқыда қателерді түзетуге және жаңа функцияларды қосуға арналмаған, ол бағдарламалық жасақтаманың әрекетін мүлде өзгертпейді және бұл қателерді болдырмауға және функционалдылықты қосуды жеңілдетуге көмектеседі. Ол кодтың түсініктілігін жақсарту немесе оның құрылымын өзгерту, «өлі кодты» жою үшін орындалады - мұның бәрі кодты болашақта сақтауды және дамытуды жеңілдету үшін. Атап айтқанда, бағдарламаға жаңа әрекетті қосу бар құрылыммен қиын болуы мүмкін - бұл жағдайда әзірлеуші ​​қажетті рефакторингті орындай алады, содан кейін ғана жаңа функционалдылықты қоса алады.
Бұл өрісті бір сыныптан екіншісіне жылжыту, әдістен код бөлігін алып тастау және оны оқшау әдіске айналдыру немесе тіпті кодты сынып иерархиясы арқылы жылжыту болуы мүмкін. Әрбір қадам тривиальды болып көрінуі мүмкін, бірақ мұндай шағын өзгерістердің жиынтық әсері дизайнды күрт жақсартады немесе тіпті нашар жобаланған бағдарламаның бұзылуына жол бермейді.





Достарыңызбен бөлісу:
1   ...   6   7   8   9   10   11   12   13   14




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет