|
![]() |
#1 | ||
I'm a PC too.
Wrote a book
Datum učlanjenja: 05.06.2005
Lokacija: Kanada
Poruke: 1.354
Hvala: 82
130 "Hvala" u 89 poruka
![]() ![]() |
![]() Citat:
@xippi: sve to tako nešto može kao, ali to je u stvari workaround. Kao i mnoge druge stvari u JavaScript-u. To je onda natezanje, šta da se radi, drugo nema, pa onda.. Vidiš na šta to liči tamo, taj linkovani primer, uporedi sa bilo kojim 'normalnim' jezikom. Npr. kako obezbeđuješ da klasa ne može da se nasleđuje? Citat:
Pošto si pomenuo Javu u pozitivnom svetlu, poznato ti je da je tamo upravljanje memorijom takođe automatsko?
__________________
Commercial-Free !!! Poslednja izmena od degojs : 18. 02. 2010. u 15:00. |
||
![]() |
![]() |
![]() |
#2 | |
profesionalac
Qualified
Datum učlanjenja: 20.06.2007
Lokacija: Beograd
Poruke: 189
Hvala: 17
14 "Hvala" u 11 poruka
![]() |
![]() Citat:
![]() Naglasak je naravno na VELIKIM RIA aplikacijama... taj problem se tek tada manifestuje...
__________________
Yahoo, Bebo, Woofy … Technology businesses must cut the baby talk, you’re a multi million corporations not a stuffed animal. Grow up, if I wanted to see uncaring money making machines with cutie names I’d go to a strip club. - Bill Maher |
|
![]() |
![]() |
![]() |
#3 | |
I'm a PC too.
Wrote a book
Datum učlanjenja: 05.06.2005
Lokacija: Kanada
Poruke: 1.354
Hvala: 82
130 "Hvala" u 89 poruka
![]() ![]() |
![]() Citat:
__________________
Commercial-Free !!! |
|
![]() |
![]() |
![]() |
#4 | |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Citat:
Ako je nekom uopšte potrebna striktna kontrola toga da li neki objekat odgovara nekom interfejsu, najmanji je problem implementirati tako nešto (kao ovaj lik sa xippi-jevog linka, mada i on koliko vidim više razonode radi), pošto je refleksija kod dinamičkih jezika isto po pravilu ko dobardan. Mada i to nema puno smisla pošto dinamički jezici obično nemaju "potpise metoda" u C-smislu reči, odnosno metode mogu da prime i vrate uslovno rečeno bilo šta. To je feature, a ne bug. ![]() Drugim rečima, ako želiš da ti se kodiranje svodi na "definisanje ugovora", onda i dalje kodiraš u VB.NETu ili čemu već... ![]() Poslednja izmena od jablan : 18. 02. 2010. u 19:02. |
|
![]() |
![]() |
"Hvala" jablan za poruku: |
![]() |
#5 | |||
I'm a PC too.
Wrote a book
Datum učlanjenja: 05.06.2005
Lokacija: Kanada
Poruke: 1.354
Hvala: 82
130 "Hvala" u 89 poruka
![]() ![]() |
![]() Šta? LOL
Citat:
Jednostavno, izuzetno kratak način da objaviš ugovor (skup funkcija i svojstava). 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)? Ako ćeš tako, sve može da se odradi na okolni način, ali možemo i da osnovne računske operacije obavljamo direktno baratajući registrima na procesoru, šta će nam bilo kakva apstrakcija. Citat:
Inače, odgovor sam potražio i našao sam, umesto ovakve besmislene priče sa tobom. Stvar može da se reši drugačije u JavaScript-u, prostim prototype nasleđivanjem, slično kao što se C++ čisto virtuelne klase koriste u zamenu za interfejse. Otprilike ovako: Kôd:
function IDuck() { } IDuck.prototype = { duck : function() {}, walk : function() {} } function Guska() { } Guska.prototype = new IDuck(); var g = new Guska(); alert ( g instanceof IDuck ); // true!
__________________
Commercial-Free !!! Poslednja izmena od degojs : 18. 02. 2010. u 19:53. |
|||
![]() |
![]() |
![]() |
#6 |
I'm a PC too.
Wrote a book
Datum učlanjenja: 05.06.2005
Lokacija: Kanada
Poruke: 1.354
Hvala: 82
130 "Hvala" u 89 poruka
![]() ![]() |
![]() U stvari, nije baš tako jednostavno kao ovo gore, jer to opet ne garantuje da objekat zaista ima vlastitu implementaciju definisanih metoda. Oh, well.. mene mrzi dalje da tražim
![]()
__________________
Commercial-Free !!! |
![]() |
![]() |
![]() |
#7 | ||
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Citat:
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:
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 ![]() |
||
![]() |
![]() |
![]() |
#8 | |||
I'm a PC too.
Wrote a book
Datum učlanjenja: 05.06.2005
Lokacija: Kanada
Poruke: 1.354
Hvala: 82
130 "Hvala" u 89 poruka
![]() ![]() |
![]() Citat:
![]() Citat:
Citat:
Kako rekoh, već sam sam pronašao odgovor koristeći prototype nasleđivanje po uzoru otprilike na pomenute virtuelne metode/klase iz C++, a ispitivanje sa instanceof. I evo upravo sam ga i naterao da proradi (čini mi se ![]()
__________________
Commercial-Free !!! Poslednja izmena od degojs : 18. 02. 2010. u 20:59. |
|||
![]() |
![]() |
![]() |
Alati teme | |
Način prikaza | |
|
|
![]() |
||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Izbor mobilnog operatera? | 3banchi | Komunikacije | 36 | 21. 10. 2010. 09:39 |
Izbor tehnologije za velike Web aplikacije | toxonics | Programiranje | 75 | 16. 01. 2006. 15:34 |
Izbor internet provajdera je bitan :) | BluesRocker | Opušteno | 2 | 19. 09. 2005. 13:48 |