Forum Sveta kompjutera  

Nazad   Forum Sveta kompjutera > Test Run > Programiranje

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 25.12.2017, 20:14   #1
NovaNada
Član
 
Član od: 13.3.2017.
Poruke: 55
Zahvalnice: 30
Zahvaljeno 3 puta na 3 poruka
Određen forumom Projektni uzorci

Malo sam čitao o projektnim uzorcima (eng. Design patterns) i naišao sam na mali problem.
Koliko sam razumeo, oni se uče i koriste uz konkretan jezik npr. C++ ili Javu. Da li ima smisla da se oni nauče ako koristim dinamički jezik tipa Python ili Ruby? Na sledećem sajtu sam saznao da oni u stvari nisu ni potrebni jer dinamički jezici nekako prevazilaze potrebu za njima. https://norvig.com/design-patterns/
NovaNada je offline   Odgovor sa citatom ove poruke
Stara 25.12.2017, 21:20   #2
Neutrino
Deo inventara foruma
 
Član od: 17.6.2011.
Poruke: 6.520
Zahvalnice: 88
Zahvaljeno 2.785 puta na 1.723 poruka
Određen forumom Re: Projektni uzorci

Designe patterns nisu jezički specifični već su generalna rešenja za probleme koja mogu da se implementiraju u svakom programskom jeziku koji ispunjava minimalne preduslove za tako nešto (obično da su OOP tipa).

Da ne bih bespotrebno kopirao sadržaj koji je već negde lepo izložen baci pogled na recimo Factory pattern, gde u sekciji sa primerima možeš videti kako se isti pattern realizuje u nekoliko različitih jezika.

Ono što je veoma bitno za razumevanje ovih šablona je dobro poznavanje osnovnih koncepata objektno orijentisanog programiranja (enkapsulacija, polimorfizam, nasleđivanje, apstraktne klase, interfejsi itd.)

Poslednja ispravka: Neutrino (25.12.2017 u 21:28)
Neutrino je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Neutrino na korisnoj poruci:
NovaNada (26.12.2017)
Stara 26.12.2017, 10:49   #3
NovaNada
Član
 
Član od: 13.3.2017.
Poruke: 55
Zahvalnice: 30
Zahvaljeno 3 puta na 3 poruka
Određen forumom Re: Projektni uzorci

Hvala, bio sam u zabludi da to nisu univerzalna rešenja.

Iz tvoje treće rečenice, pojavila se sledeća nejasnoća. Npr. Python nema mogućnost da deklarišem neka polja ili metode kao privatne ili zaštićene, pa samim tim taj OOP jezik nema enkapsulaciju. Da li je to u opšte bitno ili treba krenuti od nekoj jezika koji podržava sve koncepte koje si naveo?
NovaNada je offline   Odgovor sa citatom ove poruke
Stara 26.12.2017, 11:40   #4
doctor
Deo inventara foruma
 
Član od: 14.3.2008.
Lokacija: E1M1
Poruke: 10.556
Zahvalnice: 3.603
Zahvaljeno 2.678 puta na 1.868 poruka
Određen forumom Re: Projektni uzorci

Ako jezik nema tu mogućnost implementiraćeš to na onaj način na koji je u tom jeziku to predviđeno da se uradi. Na primer, kod Pythona ne možeš da odrediš nivo pristupa atributima objekta jer su koncepti kojima se jezik vodi upravo takvi da se upotreba tog aspekta OOP onemogućava i obeshrabruje - ali na netu, nezavisno od jezika, uglavnom možeš da pronađeš informacije o tome kako zaobići ograničenja jezika i implementirati određene patterne u njima - negde nećeš moći da ih implementiraš u potpunosti (sa svim osobinama tog patterna), negde će biti teže a negde lakše za implementaciju a od toga kakva ograničenja postoje će zavisiti i nivo kompleksnosti same implementacije.

U svakom slučaju ja kad zapne sednem na Google i roknem "<naziv patterna> in <naziv jezika>" i krenem da čačkam po primerima.
Najvažnije je da si upoznat sa teorijom (koji patterni se najčešće koriste i u kojim situacijama) a sa implementacijom ćeš onda lako da se izboriš.
doctor je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku doctor na korisnoj poruci:
NovaNada (26.12.2017)
Stara 26.12.2017, 12:15   #5
Neutrino
Deo inventara foruma
 
Član od: 17.6.2011.
Poruke: 6.520
Zahvalnice: 88
Zahvaljeno 2.785 puta na 1.723 poruka
Određen forumom Re: Projektni uzorci

Citat:
NovaNada kaže: Pregled poruke
Iz tvoje treće rečenice, pojavila se sledeća nejasnoća. Npr. Python nema mogućnost da deklarišem neka polja ili metode kao privatne ili zaštićene, pa samim tim taj OOP jezik nema enkapsulaciju.
Zapravo Python podržava enkapsulaciju kroz konvenciju tj. metode i članice promenljive čije ime počinje duplom donjom crtom (__) se automatski smatraju privatnim (link). Interpreter će automatski detektovati bilo kakvo odstupanje od konvecije i prijaviti grešku.

Ono što Python ne podržava su protected deklaracije ali one u Pythonu ne bi imale preteranog smisla s obzirom na strukturu i folozofiju samog jezika (Zen of Python).

Citat:
NovaNada kaže: Pregled poruke
Da li je to u opšte bitno ili treba krenuti od nekoj jezika koji podržava sve koncepte koje si naveo?
Nemoj uopšte da razmišljaš o programskim jezicima kada koristiš design patterne. Prosto zamisli svoj projekat kao građenje kuće gde su design patterni elementi od kojih je nastao arhitektonski plan kuće. Svaki od tih elemenata ispunjava neke osnovne propise i norme koji su formirani na osnovu višemilenijumske prakse i istraživanja u cilju da kuća na kraju funkcioniše dobro kao celina. Najbitniji deo je da da ti elementi mogu da se upotrebe i za izgradnju drugih kuća (recimo statička analiza greda, betonskih ploča itd.)

Programski jezici su u toj priči samo alat koji i dalje mora da prati plan kuće i usput bude prilagođen potrebama projekta i plana izgradnje. Mislim, može malter da se meša i u običnoj kofi ali će onda izgradnja da traje deset godina
Neutrino je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Neutrino na korisnoj poruci:
NovaNada (26.12.2017)
Stara 26.12.2017, 13:40   #6
NovaNada
Član
 
Član od: 13.3.2017.
Poruke: 55
Zahvalnice: 30
Zahvaljeno 3 puta na 3 poruka
Određen forumom Re: Projektni uzorci

Hvala obojici, sada je sve vrlo jasno.
Znači, prvo UML i patterni, a onda se igrati sa implementacijom.
NovaNada je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi

Alatke vezane za temu
Vrste prikaza

Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


Slične teme
tema temu započeo forum Odgovora Poslednja poruka
Projektni rad iz konstruisanja.... Fiky Brbljaonica 0 19.10.2010 17:17


Sva vremena su po Griniču +2 h. Sada je 23:29.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2019, vBulletin Solutions, Inc.
Hosted by Beograd.com