Page таңдаңыз

SAP ABAP жүйесіндегі дерексіз класс

by | Наурыз 11, 2019 | OOABAP

Home » SAP » ABAP » OOABAP » SAP ABAP жүйесіндегі дерексіз класс

кіріспе – Бұл жазбаның бөлігі Объектіге бағытталған ABAP сериясы.

кіріспе

Қарапайым сөзбен айтқанда, А сынып абстрактілі класс деп атауға болады, егер ол кем дегенде бір дерексіз әдісті қамтитын болса. Енді дерексіз әдіс дегеніміз не деген сұрақ туындайды. Абстрактілі әдіс – іске асырылуы жоқ әдіс. Енді сіздің ойыңызда сұрақ туындайды, егер әдіс ешқандай іске асырылмаса, онда бұл дерексіз әдіс немесе класс не үшін қолданылады.

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

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

Абстрактілі әдісті құру кезінде келесі тармақтарды есте сақтау керек:

  1. Абстрактілі әдістер ешқашан жеке бола алмайды.
  2. Тек даналық әдістерге дерексіз әдіс болуға рұқсат етіледі.

Анықтама:

Кемінде бір дерексіз әдісі бар (оны жүзеге асыруы бар) класс «Дерексіз класс» ретінде белгілі.

Мысал: Қарапайым нақты уақыт сценарийін алайық, мұнда «ТЕЛЕФОН» сіздің сыныбыңыз болып табылады. Бұл сыныптың төрт әдісі бар (әр әдіс бір функционалдылықты бейнелейді):

  1. ҚОЛДАНУ_ҚОҢЫРАУ
  2. TROP_CALL
  3. ҚҰРАҚТЫ ҚАБЫЛДАУ
  4. DIAL_NUMBER

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

Сонымен, мұнда "DIAL_NUMBER" әдісі дерексіз әдіс ретінде жарияланады. Мұнда бұл әдістің функционалдығы бірдей, яғни нөмірді теру. Бірақ әртүрлі сценарийлерде іске асыру әртүрлі болуы мүмкін.

кестесі:

КЛАСС ZCL_TELEPHONE АНЫҚТАУ АНСТРАТ. «Дерексіз сынып»

ҚОҒАМДЫҚ БӨЛІМ.

ӘДІСТЕР: DIAL_NUMBER АНСТРАКТ. «Дерексіз әдіс»

ӘДІСТЕР: PICKUP_CALL.

ӘДІСТЕР: DROP_CALL. «Дерексіз әдістер»

ӘДІСТЕР: ҚҰРАҚТЫ ҚАБЫЛДАУ

СОҢҒЫ СЫНЫП.

 

КЛАСС ZCL_SUBCLASS_TELEPHONE ZCL_TELEPHONE ҚҰРАМЫНАН МҰРА АЛУ АНЫҚТАМА. '
ҚОҒАМДЫҚ БӨЛІМ.
ӘДІСТЕРІ DIAL_NUMBER ҚАЙТА АНЫҚТАУ.
СОҢҒЫ СЫНЫП.

КЛАСС ZCL_SUBCLASS_TELEPHONE ЖАСАУ.
ӘДІС DIAL_NUMBER.
...
ENDMETHOD.
СОҢҒЫ СЫНЫП.

артықшылықтары:

  1. Бірнеше дәмдері бар әдепкі әрекеттерді қосу икемділігін қамтамасыз етіңіз.
  2. Абстрактілі сыныптар классты ішінара жүзеге асыруға мүмкіндік береді.
  3. Біз абстрактілі классты пайдалану арқылы полиморфизмге қол жеткізе аламыз.
  4. Біз динамикалық байланыстыруға да қол жеткізе аламыз. Дерексіз сыныптың нысаны сілтеме ретінде пайдаланылуы мүмкін, оны әрі қарай орындау уақытында нақты нысанмен ауыстыруға болады, бұл динамикалық байланыстыру ретінде белгілі.

автор

1 Пікір

  1. Лакшми

    Нақты және мазмұнды. Көп рахмет

    жауап

Пікір қалдыру

Сіздің электрондық пошта мекенжайы емес жарияланады. Міндетті өрістер таңбаланған *

Бұл сайт спамның төмендеуі үшін Akismet пайдаланады. Деректеріңіздің қалай өңделетінін біліңіз.

автор