Mikä on abstrakti menetelmä?

Objektisuuntautuneessa ohjelmoinnissa aliohjelmia, joita kutsutaan “metodeiksi”, käytetään ohjelman toimintojen suorittamiseen. Nämä menetelmät koostuvat ohjelmointilausunnoista, jotka suorittavat toiminnon, määrittävät syöttöparametreja toimintojen mukauttamiseksi ja voivat palauttaa tai tulostaa jonkin objektin tai luokan arvon. Menetelmät ovat toimintoja, jotka suoritetaan ohjelmassa tietyltä luokalta tai objektin sisällä, ja niitä käytetään objektiin tallennettujen tietojen käyttämiseen ja käsittelyyn. Menetelmiä on monia ja jokaisella on oma käyttötarkoituksensa. Tietty tyyppi, joka suoritetaan abstraktista superluokasta ja periytyy alaluokkien kautta, tunnetaan abstraktina menetelmänä.

Yleensä abstrakti menetelmä suorittaa vain vähän tai ei lainkaan toteutusta sen abstraktissa superluokassa. Tällaisen menetelmän sisältämiä koodeja pidetään nukkekoodeina, eikä niitä oteta käyttöön itse. Tämä ei tarkoita, että tietyn abstraktin luokan tiettyä abstraktia menetelmää ei käytetä. Pikemminkin abstrakti menetelmä toimii mallina tai paikkamerkkinä alaluokille menetelmän toteuttamisen loppuunsaattamiseksi.

Superluokat voivat sisältää useita alaluokkia, ja kaikilla superluokan alaluokilla on tiettyjä samankaltaisia ​​tiloja ja käyttäytymistä. Abstraktit luokat ovat siis eräänlainen virtuaaliluokka, jolla on virtuaalinen perintö. Tämä tarkoittaa, että mikä tahansa superluokasta johdettu alaluokka perii sen superluokan rajoitukset, josta se on johdettu. Siksi alaluokkien menetelmät johdetaan superluokkien abstrakteista menetelmistä. Kun ohjelmoidaan ja käytetään abstrakteja menetelmiä, ohjelmoijan on ilmoitettava luokka abstraktiksi eikä virtuaaliseksi.

Esimerkiksi “Graafisten objektien” superluokka sisältää alakategoriat “Ympyrä”, “Neliö” jne. Kaikilla ympyröillä ja neliöillä on samat tilat – suunta, sijainti, täytön väri, viivan väri – ja käyttäytyminen – moveTo , muuttaa kokoa, kiertää, piirtää – “graafisina objekteina”. Kaikilla tämän superluokan alaluokilla on samat ominaisuudet, mutta ne toteutetaan eri tavoin. Superluokan abstrakti menetelmä tarjoaa perustan ilman toteutusta, ja alaluokat suorittavat todellisen toteutuksen samoilla menetelmillä. Vaikka jokainen alaluokka käyttää samaa menetelmää kuin abstrakti luokka, ne määrittelevät yksilöllisesti tavan, jolla menetelmä suoritetaan.

Abstraktin menetelmän käyttö mahdollistaa yleistyksen ylätasolla tai superluokalla ja määrittelyn alemmilla tasoilla tai alaluokissa. Tämä hierarkia minimoi menetelmäohjelmoinnin määrän kullekin tietylle alaluokalle. Näiden menetelmien käyttö mahdollistaa myös alaluokkien idempotensiteetin, mikä tarkoittaa, että jos menetelmä toteutetaan yhä uudelleen, tulos on sama joka kerta.