265
Қабаттастыру кластардың «Ү құрамында Х» немесе «Ү Х арқылы жүзеге
асырылады» деген сияқты қатынастарын сипаттайды.
Мұралаудың орнына
қабаттастыруды қолданудың қажеттілігін «Ү құрамында Х класының бірнеше
объектісі болуы мүмкін бе» деген сұрақты қоя отырып анықтауға болады.
Мысалы, егер ұшақты модельдеуге арналған класты сипаттау қажет болса,
оның құрамында «қозғалтқыш» типті өрісті сипаттаған жөн болады: ұшақ
құрамында қозғалтқыш бар, бірақ ол ұшақтың бір түрі болып саналмайды.
Ү класы Х класының бір түрі
болады деп айта алмайтын, бірақ Ү класы
Х класы функционалдылығының бір бөлігін қолданатын кезде «... арқылы
жүзеге асырылады» қатынасы мұралаудың орнына пайдаланылады. Мұралау
орнына қабаттастыруды қолдану дұрысырақ болып табылады.
Кластар арасында логикалық
өзара байланыс болмай, тек бір класс кодының
бөлігін басқа бір класта қолдану керек болған жағдайда жабық мұралауды
(
private
қол жеткізу кілті бар) қолданған тиімді болуы мүмкін. Бұл тəсіл
туынды класта базалық кластың қорғалған элементтеріне қол жеткізу жəне
оның виртуалды əдістердің орнын басу керек болған кезде қолданылады.
Класс шаблондары іс-əрекеттері объектілер
типіне байланысты болмай-
тын класс топтарын құру үшін қолданылады. Шаблондарды мұқият болып,
əрбір тип үшін өзіндік шаблон көшірмесі құрылатындықтан, код көлемі артуы
мүмкін екендігін есте сақтай отырып қолдану керек.
Кодтың көлемін азайту
үшін объект типі туралы ақпаратты пайдаланбайтын барлық əдістерді базалық
класқа шығару жəне одан шаблондық əдісті барлық басқа əдістермен бірге
мұралау ұсынылады. Осы арқылы мəтіндері шаблон параметрлеріне тəуелді
болмайтын əдістердің қайталануынан сақтанамыз.
Көбінесе
ерекше жағдайлар қателік туралы хабар берудің басқа тəсілі жоқ
болған кезде (мысалы, қателік конструкторда немесе асыра жүктелген
опера-
цияда туындаса) пайдаланылады, сонымен қатар олар түзетілмейтін немесе
өте сирек кездесетін күтілмеген қателіктер туындағанда қолданылады. Ерек-
ше жағдайларды өңдеу программаның өнімділігін айтарлықтай төмендетеді,
автордың
көзқарасы бойынша, ол программаның оқылуын да нашарлатады,
сондықтан ерекше жағдайларды қажет болмаған кезде қолданбаған жөн.
Осы бөлімде қарастырылған сұрақтарды толығырақ меңгеру үшін
А. Голубтың [9] жəне С. Мейерстің [13] кітаптарын қолдану ұсынылады.