OOP a jeho výhody? – Offtopic – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

OOP a jeho výhody? – Offtopic – Fórum – Programujte.comOOP a jeho výhody? – Offtopic – Fórum – Programujte.com

 

Rxm_cp
~ Anonymní uživatel
2 příspěvky
14. 6. 2008   #1
-
0
-

Zdravím, chtěl bych poradit s OOP. Vím co to je a jak to používat, ale stále mi nedochází, v čem to je lepší než normální strukturální programování. Vím že budete asi chtít napsat jednoduše: "Polymorfisums, Dědičnost, Zapouzdření" , ale já bych spíš k nim chtěl nějaký reálný příklad, kdy by programování strukturální bylo složitější než objektová forma.
Děkuji za radu ;-) .

Nahlásit jako SPAM
IP: 83.208.235.–
pawlik0
Grafoman
14. 6. 2008   #2
-
0
-

vyhodou je, ze objektu z teto tridy muzes udelat kolik chces.
obecne(ptz nevim, o jaky jazyk jde.):



class konik{
function konik(self){
self.zvuk = "ihahaha";
}
function set_zvuk(self, a){
self.zvuk = a;
}
}

Hribecek = new Konik();
Hribecek.set_zvuk("můůů");
Brepta = new Konik();
Brepta.set_zvuk("íhahyhá");

proste - elegance, jednoduchost, prehlednost a moznost mit koní kolik chceš.

Nahlásit jako SPAM
IP: 89.176.203.–
Sa Nata A Na. Howgh
Rxm_cp
~ Anonymní uživatel
2 příspěvky
14. 6. 2008   #3
-
0
-

To pawlik :
Programuješ java hry? Jen takovy dotaz mimo.

Nahlásit jako SPAM
IP: 83.208.235.–
pawlik0
Grafoman
14. 6. 2008   #4
-
0
-

To Rxm_cp : Javu neumím, ale java hry jsem tvořil na http://gamedev.mobi. Bohužel to už zrušili.

Nahlásit jako SPAM
IP: 89.176.203.–
Sa Nata A Na. Howgh
Tocimanko0
Grafoman
14. 6. 2008   #5
-
0
-

To pawlik :

Javu neumím, ale java hry jsem tvořil na


To sa dá? :D Tvoril si java hry a nevedel si javu. Hm, zaujímavé :D Niet nad logiku.

Nahlásit jako SPAM
IP: 195.91.82.–
Chrasty
~ Redaktor
+4
Posthunter
14. 6. 2008   #6
-
0
-

Možná existuje nějaký gamemaker pro mobily:D

Nahlásit jako SPAM
IP: 193.179.196.–
netman920
Super člen
14. 6. 2008   #7
-
0
-

To Chrasty :
online?
lol :smile5:

Nahlásit jako SPAM
IP: 195.91.54.–
Quiark0
Věrný člen
14. 6. 2008   #8
-
0
-

K tématu: Existuje spousta projektů, které OOP nepoužívají a přesto jsou docela úspěšné.

OOP je nástroj pro zvládání složitosti. Současné velké projekty jsou nesmírně složité a není možné, aby člověk držel v hlavě každý detail. Místo toho musí fungovat tak, že si program dělí na moduly a od konkrétní implementace daného modulu abstrahuje. Toho se dá samozřejmě jistým způsobem dosáhnout i ve strukturovaném programování. OOP tuto myšlenku posouvá ještě dál a navíc umožňuje o programu uvažovat více jako o reálném světě, který se taky skládá z objektů, které mají nějaké vlastnosti a chování. To pomáhá programátorovi se v systému vyznat.

Prostě nejde ani tak o to, jestli je jednodušší něco naprogramovat objektově nebo strukturovaně (například začátečníci musí vynaložit extra úsilí na to, aby se naučili principy OOP a tudíž by pro ně strukturované programování mohlo být "snadnější"). Důležité je, aby se ve velkém systému člověk snadněji vyznal (když to čte někdo jiný, když je v něm potřeba něco změnit nebo prostě jen naprogramovat další funkci). Tomu OOP svými vlastnostmi pomáhá. Samozřejmě musí být tyto vlastnosti využity správně.

Nahlásit jako SPAM
IP: 194.212.43.–
pawlik0
Grafoman
14. 6. 2008   #9
-
0
-

To netman92 : jo. přesně. nedělám si srandu. Sice anglicky, ale prostě tam byly taky 'místnosti', objekty a obrázky jako v gamemakeru. Tady jsou věci, co jsem na gamedevu dělal: http://www.w.kx.cz/download/java/.

Nahlásit jako SPAM
IP: 89.176.203.–
Sa Nata A Na. Howgh
Nefaritus
~ Redaktor
+2
Posthunter
15. 6. 2008   #10
-
0
-

Dělali jsem s kamarádem na něček jako redakční systém...v PHP samozřejmě a víc tedy dělal on, já pracoval především na grafice a tak kolem toho...vím že už jsme to měli hotový a objevilo se pár nedostatků. Zafixovat ty nedostatky byl nadlisdský úkon, protože to bylo asi 1500 řádků strukturálního programu (jen v indexu) a další tisíce řádků mimo a nedalo se v tom absolutně vyznat. Sám říkal, že přístě to budeme dělat jedině objektově a musel jsem souhlasit. Uděláš si pár tříd na věci které neustále používáš a pak je stačí jen volat...neuvěřitelné zpřehlednění a zjednodušení...

Nahlásit jako SPAM
IP: 213.191.111.–
pawlik0
Grafoman
15. 6. 2008   #11
-
0
-
Nahlásit jako SPAM
IP: 89.176.203.–
Sa Nata A Na. Howgh
Chrasty
~ Redaktor
+4
Posthunter
15. 6. 2008   #12
-
0
-

pawlik napsal:
To netman92 : jo. přesně. nedělám si srandu. Sice anglicky, ale prostě tam byly taky 'místnosti', objekty a obrázky jako v gamemakeru. Tady jsou věci, co jsem na gamedevu dělal: http://www.w.kx.cz/download/java/.

Hustě, já to trefil :smile7:

Nahlásit jako SPAM
IP: 193.179.196.–
Quiark0
Věrný člen
15. 6. 2008   #13
-
0
-

To Nefaritus : Možná tě zklamu, ale samo použití OOP vás nezachrání :)

Nahlásit jako SPAM
IP: 194.212.43.–
Nefaritus
~ Redaktor
+2
Posthunter
15. 6. 2008   #14
-
0
-

To Quiark : Neboj...nezklameš...ja neříkám, že nás zachrání, ale že částečně nám řeší problém ;)

Nahlásit jako SPAM
IP: 213.191.111.–
Mixxy
~ Anonymní uživatel
179 příspěvků
19. 6. 2008   #15
-
0
-

Hele,ja kdyz kdysi prechazel na OOP z klasickyho strukturovanyho programovani,tak jsem to moc nechapal. Muzu ti to vysvetlit asi takhle. Predstav si,ze mas treba obycejny telefon pevne linky. Ty, jako uzivatel vis jak mas telefon obsluhovat,aniz bys vedel, co ten telefon dela,nebo jak pracuje. Kdybys nekdy treba v Ccku programoval nejaky slozitejsi aplikace a musels do nich zahrnout nejaky tridy od nekoho jinyho, tak ti bude stacit,aby ses naucil to, co jde do tridy, co ti drida navraci,jak osetrit chyby. Obecne se tridy pouzivaji pro velke aplikace. Ale to neznamena,ze je nemuzes pouzit i v malych;)

Nahlásit jako SPAM
IP: 85.13.122.–
Jirka
~ Anonymní uživatel
305 příspěvků
21. 6. 2008   #16
-
0
-

Objekt je zabalený kod a data která k němu patří. Můžeš snadno zajistit (a měl bys to správně u OOP dělat), aby každý objekt měl plnou zodpovědnost za svá data a žádný jiný kod mu v jeho datech zmatek nedělal. Tím se ti celej program rozpadne na řadu objektů a každej je soběstačnej (můžeš ho kdykoliv použít znovu, zvlášť ho testovat apod.)
Příklad: Chceš udělat program na evidenci svých videokazet - tak vytvoříš objekt Videokazeta, kterej bude umět načíst data, zkontrolovat esli jsi třeba nezadal zápornou delku v hodinách apod. Pak vytvoříš objekt SeznamVid, kterej bude mít metody VložVideokazetu(Videokazeta obj), Vymaž(jmenoVideokazety), NaDisk(), ZDisku(String nazevSouboru)... Pak vytvoříš třeba objekt, kterej bude mít na starosti grafické znázornění... třeba Vystup a tenhle objekt Vystup bude svojí práci dělat tak, že bude dávat příkazy (volat metody) objektu Tabulka a Menu... K tomu všemu si představ, jak daleko snadněji se může rozdělovat práce mezi víc programátorů - každej udělá svůj objekt a na šéfovi je jen aby standartizoval vzájemnou komunikaci mezi objektama. Další výhoda je dědičnost... třeba ten SeznamVid by mohl být zděděn, od nějakého obecného objektu Seznam, kterej sis už někdy někde udělal a u SeznamVid jen přidáš pár specialit pro videokazety...
Hodně pochopíš taky když se budeš snažit využít nějaké objektové API pro vytváření GUI - třeba Swing, .NET, MFC apod. Každý formulář se stará o své buttony, checkboxy, textboxy...
Já mám zase opačný problém - budu muset dělat do školy něco v čistém C a strašně mi objekty chybí - připadá mi, že ten kod nebude moc přehlednej, že budou problémy s rozšiřováním...

Nahlásit jako SPAM
IP: 90.177.104.–
LamiCZ
~ Anonymní uživatel
8 příspěvků
21. 6. 2008   #17
-
0
-

IMHO kdo nedokaze napsat prehledny proceduralni kod, tak mu OOP nepomuze. Napr. co psal Nefaritus, kdyz jeho kamarad pouzije OOP, bude to misto 3.500 radku proceduralniho kodu 4.500 radku stejne neprehlednyho kodu akorat s tridou. Bude to zkratka jeste vetsi o rezii tridy, jinak nic. Ja osobne pouzivam OOP v PHPku na cacheovani (serialize na disk) a pak v session, kde jsou v nem vsechny promenne, co chci prenaset + opet serialize (napr. elegantni autologin). Prevzal jsem myslenku od znameho, ktery tvrdi, ze objekty maji smysl pouze v session, aby se zachovavali (mmch spickovy programator ASM/C, ktery se ucil programovat od Rusu a pro predstavu je schopen vymyslet svuj DB engine a napsat ho v ASM treba do PIC 16F84, nebo treba multitaskingove jadro, jak je libo... maniak...).

Nahlásit jako SPAM
IP: 78.102.185.–
ghibulo0
Newbie
22. 6. 2008   #18
-
0
-

LamiCZ napsal:
Prevzal jsem myslenku od znameho, ktery tvrdi, ze objekty maji smysl pouze v session...



Jedním z velkých přínosů strukturovaného programování bylo psaní kódu přístupem shora dolů a využití funkcí, což velmi zpřehledňovalo programování. Složitost programů však narůstala a analytické postupy používané při návrhu softwaru narážely na velmi problematické propojení a soudržnost datové a funkční vrstvy. Propojení těchto vrstev bylo nedostatečné. Manipulace se stejnými daty se realizovala na mnoha místech programového kódu a z hlediska další údržby bylo velmi složité provádět změny a další rozšiřování systémů. Při použití dvouvrstvé architektury klient - server nastaly problémy, jak správně analyzovat problematiku informačních systémů. Strukturovaný přístup se jevil jako naprosto nevhodný z výše uvedených důvodů a v podstatě analytický návrh se realizoval pouze ve své datové části. Z tohoto důvodu se začal používat v celém světě objektově orientovaný přístup.

citace z knihy "UML srozumitelně"

Nahlásit jako SPAM
IP: 90.177.104.–
Tomcat0
Newbie
22. 6. 2008   #19
-
0
-

To LamiCZ : Pokud se na toho tveho "znameho" nebudu divat jako na pohadku, tak je to krasna ukazka toho, ze byt dobry low-level programator neznamena automaticky vse delat spravne....

Nahlásit jako SPAM
IP: 62.24.93.–
"Nemůžete nikoho nic naučit, můžete mu maximálně pomoci, aby to sám v sobě nalezl. " Galileo Galilei
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 19 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý