"Hello, Amigo! Ngayon gusto kong sabihin sa iyo ang mga dahilan kung bakit umiiral ang mga interface. Madalas mong marinig na ang isang partikular na klase, object, o entity ay sumusuporta sa isang partikular na interface. Ano ang ibig sabihin ng pagsuporta sa isang interface ? "

Umiiral ang mga interface upang suportahan ang partikular na pag-uugali - 1

Sa mas malawak na kahulugan, ang anumang interface ay isang mekanismo para sa isang bagay na makipag-ugnayan sa ibang bagay. Halimbawa, ang remote ng TV ay isang remote na interface. Ang aso ay naiintindihan at nagsasagawa ng mga utos, na nangangahulugan na ang aso ay sumusuporta sa isang boses (kontrol) na interface. Sa kabuuan, maaari nating sabihin na ang isang interface ay isang standardized na paraan para sa dalawang bagay na makipag-ugnayan, kung saan alam ng parehong partido ang pamantayan. Kapag ang isang tao ay nagsabi sa isang aso na "umupo", ang kanyang utos ay bahagi ng isang "dog voice-control interface", at kung ang aso ay sumunod sa utos, pagkatapos ay sinasabi namin na ang aso ay sumusuporta sa interface.

Kaya ito ay sa programming. Ang mga pamamaraan ay mga aksyon na isinagawa sa isang bagay, sa data nito. At kung ang isang klase ay nagpapatupad ng ilang mga pamamaraan, pagkatapos ay "sinusuportahan nito ang pagpapatupad" ng ilang mga utos. Ano ang makukuha natin sa pamamagitan ng pagsasama-sama ng mga pamamaraan sa isang interface?

1) Ang bawat interface , tulad ng isang klase , ay may natatanging pangalan. Ang parehong partido ay maaaring maging 100% sigurado na sinusuportahan ng kabilang partido ang eksaktong interface na alam nila at hindi ang ilang katulad na interface.

2) Ang bawat interface ay nagpapataw ng ilang mga paghihigpit sa isang klase na susuportahan ito. Ang klase (developer nito) ang magpapasya kung ano ang gagawin nito kapag tinawag ang mga pamamaraan na minana mula sa isang interface, ngunit ang resulta ay dapat na nasa loob ng mga hangganan ng mga makatwirang inaasahan. Kung inutusan namin ang isang aso na "umupo" at pagkatapos ay umiikot ito sa lugar sa loob ng 5 minuto at pagkatapos ay umupo, pagkatapos ay sinusuportahan nito ang interface. Ngunit kung sa halip ay hinawakan ka nito sa pamamagitan ng binti, kung gayon halos hindi namin masasabing sinusuportahan nito ang interface. Ang pagpapatupad ng utos ay hindi nagdulot ng inaasahang resulta.

Sabihin nating ikaw at ang iyong mga kaibigan ay nagsusulat ng laro sa computer. At ikaw ay itinalaga na magprograma ng pag-uugali ng isang karakter. Ang isa sa iyong mga kasamahan ay nagsulat na ng code upang ipakita ang lahat ng mga character sa screen. Ang pangalawang kasamahan, na responsable sa pag-save ng laro sa disk, ay may nakasulat na code upang i-save ang lahat ng mga object ng laro sa isang file. Ang bawat isa sa kanila ay nagsulat ng maraming code at gumawa ng isang interface para sa pakikipag-ugnayan sa code na iyon. Halimbawa, maaaring ganito ang hitsura nito:

Java code Paglalarawan
interface Saveable
{
 void saveToMap(Map<String, Object> map);
 void loadFromMap(Map<String, Object> map);
}
— Interface para sa pag-iimbak / pag-load ng isang bagay mula sa isang mapa.
interface Drawable
{
 void draw(Screen screen);
}
— Interface para sa pagguhit ng isang bagay sa loob ng naipasa na bagay sa Screen.
class PacMan implements Saveable, Drawable
{
…
}
— Ang iyong klase, na sumusuporta sa dalawang interface.

Sa madaling salita, upang suportahan ang anumang interface (pangkat ng mga interface), ang iyong klase ay dapat:

1) Manahin sila

2) Ipatupad ang mga pamamaraan na ipinahayag sa kanila

3) Ang mga pamamaraan ay dapat gawin kung ano ang nilayon nilang gawin.

Pagkatapos ang natitirang code ng programa, na walang alam tungkol sa iyong klase at mga bagay nito, ay maaaring gumana sa iyong klase.

"Bakit walang alam ang code tungkol sa klase ko?"

"Sabihin nating kinuha mo ang code mula sa isang programa na isinulat ng isang tao noong isang taon. O ipagpalagay na binili/lisensyahan ng iyong mga kaibigan ang engine ng laro mula sa ibang tao. Mayroon kang gumaganang code para sa laro. Libu-libong mga bagay na nakikipag-ugnayan sa isa't isa. At sila madaling makipag-ugnayan nang tama sa iyong mga bagay kung gagawin mong mangyari ang pakikipag-ugnayang iyon sa pamamagitan ng mga interface na wastong ipinatupad ng iyong mga klase."

"Ang layo! Hindi ko alam na posible pala iyon."

"Lahat ng malalaking proyekto ay gumagana tulad nito. Ang mga tao ay tumigil sa pagsusulat mula sa simula ng matagal na ang nakalipas."

Hindi rin nagbabago ang mga tao sa matematika at alpabeto sa bawat pagkakataon. Sa halip, pinag-aaralan nila ang lahat ng naimbento bago sila.