PHP-dä OOP-da Interfeýsler
Bilşiňiz ýaly, abstrakt klasslar öz warisleri üçin metotlar toplumyny şekillendirýär. Bu metotlaryň bir bölegi şol klassyň özünde amala aşyrylyp bilner, ýene bir bölegi bolsa abstrakt hökmünde yglan edilip, waris klasslarda amala aşyrylmagy talap edilip bilner.
Şu ýagdaýy göz öňüne getireliň: siziň abstrakt klassyňyz diňe abstrakt public metotlardan ybarat, amala aşyrylan metotlary goşmaýar.
Esasda, ata-klassyňyz warisleriň interfeýsini düşündirýär, ýagny olaryň amala aşyrylmagy hökman bolan public metotlarynyň toplumy.
Bize munyň nähili zerurlygy bar: programmirleme döwründe az ýalňyşlyk etmek üçin - zerur metotlaryň hemmesini ata-klasda düşündirip, warisleriň hakykatdanam olary amala aşyrjakdygyna göwnümiz doly bolar.
Bu nähili kömek eder: diýeliň, ata-klassymyzy we oňa birnäçe waris döretdik. Eger bir wagtdan soň, mysal üçin, bir aýdan soň, ýene bir waris döretmek islesek, kodymyzyň jikme-jikliklerini hökman ýadyndan çykaryp, täze warisde käbir metody ýazmagy unypsyz bolar. Emma PHP-nyň özi metody ýitirmäge rugsat bermez-de, diňe ýalňyşlyk çykarar.
Proýektiňizde işleýän beýleki programmir üçin hem şol bir zat aýdylýar. Diýeliň, ata-klassyň koduny siz ýazdyňyz, soňra işdäşiňiz ýene bir waris döretmek isledi. Işdäşiňiziň hem bir-iki metody ýitirmek mümkinçiligi bolmaz.
Emma bir meselä bar: esasan, ata-klassymyzy abstrakt public metotlary ýazmak üçin döretdik, ýöne biz özümiz ýa-da işdäşimiz şu klassa public däl ýa-da abstrakt däl metot goşmak mümkinçiligine eýe.
Diýeliň, biz atada beýleki metotlary etmegi, abstrakt public metotlardan başga, fiziki taýdan gadagan etmek isleýäris. PHP-da bun üçin abstrakt klasslar ýerine interfeýsleri ulanup bileris.
Interfeýsler, metodlarynyň hemmesi public we amala aşyrylmagy bolmadyk klasslardyr. Metodlaryň koduny interfeýsleriň waris klasslary amala aşyrmaly.
Interfeýsler adaty klaslar ýaly yglan edilýär, ýöne class
sözüniň ýerine interface açar sözi ulanylýar.
Interfeýslerden miras almak üçin birneme başga terminologiýa
ulanylýar: klasslaryň interfeýslerden miras almadygyny, eýsem
olary amala aşyrandygyny aýdýarlar. Şoňa görä hem
extends sözüniň ýerine implements açar sözi
ulanylmaly.
Interfeýsiň objekti döredip bolmaz. Interfeýsiň ähli metodlary
public hökmünde yglan edilmeli we amala aşyrylmagy
bolmaly däl. Interfeýsiň diňe metotlary bolup, aýratynlyklary
bolmaly däl. Şeýle hem, bir interfeýs we bir atly klas döredip
bolmaz.