„Bună, Amigo! Sunt eu — din nou. Vreau să vă ofer un alt punct de vedere asupra interfețelor. Vedeți, de cele mai multe ori o clasă este un model al unui anumit obiect. În schimb, interfețele seamănă mai mult cu abilitățile unui obiect sau roluri, mai degrabă decât obiectul în sine”.
De exemplu, lucruri precum mașinile, bicicletele, motocicletele și roțile sunt cel mai bine reprezentate ca clase și obiecte. Dar abilitățile lor, precum „Pot să mă mișc”, „Pot transporta oameni” și „Pot parca”, sunt mai bine reprezentate ca interfețe. Consultați acest exemplu:
Cod Java | Descriere |
---|---|
|
Corespunde capacitatii de miscare. |
|
Corespunde capacitatii de miscare. |
|
Corespunde capacitatii de a transporta marfa. |
|
O clasă „roată”. Are capacitatea de a se mișca. |
|
O clasă „mașină”. Are capacitatea de a se mișca, de a fi condus de o persoană și de a transporta marfă. |
|
O clasă de „skateboard”. Are capacitatea de a se mișca și de a fi controlat de o persoană. |
Interfețele simplifică foarte mult viața programatorului. Programele au deseori mii de obiecte, sute de clase și doar câteva zeci de interfețe (roluri). Sunt puține roluri, dar pot fi combinate în multe feluri (clase).
Ideea este că nu trebuie să scrieți interacțiunea care definește codul cu orice altă clasă. Tot ce trebuie să faci este să interacționezi cu roluri (interfețe).
Imaginează-ți că ești un constructor de roboti. Ai zeci de roboți subordonați și fiecare dintre ei poate avea mai multe abilități. Să presupunem că trebuie să terminați urgent construirea unui perete. Doar luați toți roboții care au capacitatea de a „construi” și le spuneți să construiască zidul. Nu-ți pasă cu adevărat ce roboți o fac. Lasă-l să fie un robot de udare. Dacă știe să construiască, lăsați-l să construiască.Iată cum ar arăta în cod:
Cod Java | Descriere |
---|---|
|
Abilitatea de a „construi un zid”. Înțelege comanda „construiește un zid” (are metoda corespunzătoare). |
|
Roboți care au această abilitate/abilitate.
Un udato nu poate construi un zid (nu implementează interfața WallBuilder). |
|
Cum dăm comanda de a construi un zid? |
"Este uimitor de interesant. Nu am visat niciodată că interfețele ar putea fi un subiect atât de interesant."
"Și apoi ceva! Împreună cu polimorfismul, este total uluitor."
GO TO FULL VERSION