Pogledajte određenu poruku
Staro 18. 02. 2010.   #88
jablan
VD IT Direktora
Invented the damn thing
 
Avatar jablan
 
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
jablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamen
Default

Citat:
Originalno napisao degojs Pogledajte poruku
Ne, interfejsi se koriste i jednostavno da bi objavio ugovor koji strane moraju da ispoštuju.
O gospode... Vidi: taj ugovor kod interpretiranih jezika nema nikakvu težinu jer ne postoji kompajler koji se buni ako "ugovor nije ispoštovan". Sa druge strane, u rantajmu se ta provera radi vrlo lako i nije neophodan nikakav veštački language construct da bi se to izvelo, već se to radi sa postojećim konceptima (npr. običnim metodama).

Taj "ugovor" o kome pričaš zapravo nema veze sa koderom. U pitanju je ugovor sa kompajlerom, tj. jedini način da ti kompajler dozvoli da pozivaš iste metode na objektima različitih klasa. Drugim rečima, pisanje interfejsa je tvoja obaveza, a ne privilegija.

Mislim, ja kapiram da ti to znaš, pišem ovo zbog omladine koja ovo čita...

Citat:
Aha, znači treba da ispitujem:

1. da li x može da hoda?
2. da li x može da trči?
3. da li x može da radi x, y i z?
4. da li x ima svojstvo "visina"?
....
Nego da pitamo kratko: da li objekt može da se tretira kao "čovek" (gde smo unapred definisali svojstva i funkcije koje "čovek" podržava)?
Ne, ne treba da ispituješ, ali niko ti ne brani da to radiš, i to ne tako kako mali perica zamišlja, serijom nekih if-ova, možda pre ovako:

Kôd:
# unapred definišemo svojstva i funkcije:
sve_sto_covek_mora_da_podrzava = [:hodaj, :trci, :x, :y, :z, :visina]
# pa pitamo kratko
objekat_pera.podrzava? sve_sto_covek_mora_da_podrzava
Viđu mađije! Bez interfejsa!
jablan je offline   Odgovorite uz citat