260
қатар класс өрістерінің қолжетімділігін қолданушыға ұсынылатын əдістер
жиынтығының көмегімен реттеуге мүмкіндік туады.
Кластың барлық жасырын өрістері үшін
get/set
типті əдістерді
анықтамаған жөн – бұл айтарлықтай күрделі жолмен оларды пайдалануға
жол ашып берумен пара-пар. Класс өрістері оның интерфейсінде əдістер
көмегімен бейнеленген класс қасиеттерін жүзеге асыру үшін ғана енгізілетінін
естен шығармаған дұрыс. Əрине, егер кластың қасиеті осылайша жүзеге асы-
рылатын болса, онда қандай да бір өрістің мəнін əдістің көмегімен алуға не-
месе орнатуға болады (осылайша, код өзгеріссіз қалады да, ал бірақ оның
мағынасы мүлде басқаша болады.
Класс интерфейсін қажеттіліксіз, «керек болып қалар жағдай» үшін кеңейту
керек емес, өйткені əдістер санының артуы қолданушының класты түсінуінде
қиындықтар тудырады
1
. Мінсіз жағдайда интерфейс толық болуы тиіс, яғни
класқа қатысты кез келген саналы əрекеттерді орындауға мүмкіндік беруі тиіс
жəне
интерфейс минималды болуы керек, яғни оның құрамында қайталаулар
болмай, əдістер мүмкіндіктерінің қиылысуы да кездеспеуі тиіс.
Əдістер ретінде тек кластың қасиеттерін жүзеге асыратын əрекеттерді
анықтаған жөн. Егер қандай да бір əрекетті кластың жасырын өрістерін
пайдаланбай-ақ жүзеге асыруға болатын болса, оны əдіс ретінде сипаттаудың
қажеттілігі жоқ; оны класпен ортақ атаулар кеңістігіне орналастырып,
қарапайым функция ретінде сипаттаған дұрыс. Егер функция класс қасиеті
болып табылмайтын əрекетті орындап, бірақ оның жасырын өрістерін пай-
далануы қажет болса, онда оны достас функция ретінде жариялау керек. Де-
генмен, жалпы жағдайда
достас функцияларды жəне кластарды қолданбаған
жөн, өйткені ОБП-дың негізгі идеясы инкапсуляцияланған кластар арасында
байланыстарды ең төменгі деңгейде ұстау (минималдау) болып табылады.
Программаның өнімділігін арттыру үшін барынша жиі шақырылатын
əдістерді кіріктірілген (
Достарыңызбен бөлісу: