| | |
Autor | Správa |
---|
Registrovaný: 29.10.07 Prihlásený: 27.10.23 Príspevky: 1395 Témy: 30 Bydlisko: Bratislava |
Tak ako pise stenley. Objektove programovanie ma vyznam hlavne vtedy, ak vyuzijes specialne vlastnosti tried a objektov (teda spominanu dedicnost atd).
Ak si niekto vytvory objekt pre pracu s databazou ktory ma napr 6 metod, tak to moze mat kludne 6 funkcii a vlastnosti triedy nahradit globalnymi premennymi Nebude to sice az take "pekne", ale ak to bude mat v zvlastnom zdrojaku tak to nebude ani "skarede". Tieto 2 riesenia budu ronako dobre.
Ak sa v PHP pre zaciatok vyhnes OOP, nic nepokazis. Vsetci co programuju viac nez par rokov totiz tiez zacinali na procedurach.
_________________ PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME Mobil: Xiaomi POCO F2 PRO |
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 |
Výhoda je asi taká. Predstav si že by si mal programovať križovatku (nemusí to byť v PHP, ale všobecne). Na križovatku prídu autá, a každé musí niekde chcieť ísť, a každé sa musí správať podľa predpisov. Urobiť toto proceduralnym spôsobom je niekoľko násobne ťažšie, než cez OOP. Prečo?
Lebo v OOP by si naprogramoval všeobecné spravanie každého auta, zatiaľ čo cez procedúry by si musel riešiť každé auto.
|
|
Registrovaný: 26.11.06 Prihlásený: 22.01.24 Príspevky: 4118 Témy: 319 Bydlisko: HE/BA | Napísal Flety: 25.11.2009 16:26 | |
|
Prečo? Dal by som auto($suradnice-z, $suradnice-kam) a vo funkcií by som zaznamenal predpisy pre každé auto.
|
|
Registrovaný: 10.02.08 Prihlásený: 15.05.17 Príspevky: 2264 Témy: 48 Bydlisko: Nitra | Napísal Svolo: 25.11.2009 16:47 | |
|
Bože flety Proste OOP je vhodné na väčšie projekty a veci kde je kód prehladnejší a rýchlejší a lepší ako procedurálny Nikto ti neprikazuje používať OOP a vymazať funkcie Veď aj taká trieda by bola vlastne bez funkcií stratená...
_________________ WYSIWYMGIYRRLAAGW: What You See Is What You Might Get If You’re Really Really Lucky And All Goes Well. |
|
Registrovaný: 31.05.09 Prihlásený: 02.06.17 Príspevky: 562 Témy: 37 Bydlisko: BegyBen |
Flety píše: Prečo? Dal by som auto($suradnice-z, $suradnice-kam) a vo funkcií by som zaznamenal predpisy pre každé auto.
A co by si spravil ak b ysa tam zdrazu objavila motorka, ktora ma dajme tomu troskicku ine predpisy?
|
|
Registrovaný: 26.11.06 Prihlásený: 22.01.24 Príspevky: 4118 Témy: 319 Bydlisko: HE/BA | Napísal Flety: 27.11.2009 18:50 | |
|
Čo by si spravil v triede, čo by som nemohol spraviť vo funkcií?
Svolo, nechcem sa hádať, možno je lepšie to OOP ale zatiaľ ma nikto o tom nepresvedčil. Bol by som rád, aby ste si tento názor obhájili tak, aby som videl, že to OOP je vážne výhodnejšie a oplatí sa študovať tento spôsob myslenia a programovania.
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 27.11.2009 20:11 | |
|
Pointa, preco OOP pouzivam ja, je ta, ze trieda moze mat aj metody, aj cleny. Funkcie s premennymi nedas dokopy, pokial si nechces zababrat kod globalnymi premennymi. Ak zoberieme priklad s autom, vytvorim si triedu Auto, ktora bude mat cleny x a y ako suradnice a metody hore(), dole(), doprava(), dolava(), pricom mozem si povytvarat desat aut a vsetky budu mat metody a cleny nezavisle od seba. Ako by si toto chcel riesit bez OOP? Vytvoris si polia vsetkych X a Y suradnic? Alebo si vytvoris jednotlive auta ako polia s X a Y suradnicou a budes pouzivat funkcie na posun, kde parameter bude musiet byt aj auto? Obe moznosti su na hlavu postavene.
Porovnaj si zapis Kód: $xml = new XMLWriter(); $xml->openURI('subor.xml'); $xml->startDocument('1.0', 'UTF-8'); $xml->endDocument(); a Kód: $xml = xmlwriter_open_uri('subor.xml'); xmlwriter_start_document($xml, '1.0', 'UTF-8'); xmlwriter_end_document($xml); Na troch riadkoch sa to mozno nezda, ale ta prehladnost v OOP vitazi.
Dalo by sa hovorit o dedicnosti, abstrakcii a inych srandach, ale najprv treba prist na chut zakladom OOP.
|
|
Registrovaný: 26.11.06 Prihlásený: 22.01.24 Príspevky: 4118 Témy: 319 Bydlisko: HE/BA | Napísal Flety: 27.11.2009 20:48 | |
|
Teda pokiaľ správne chápem, tak trieda má kvázi podfunkcie, ktoré voláš tou šípkou(zrejme sú to tie metódy) a parametre sa zadávajú ako do funkcií. Je tak? Myslím, že začínam chápať načo to je dobré. Ale myslím, že učiť sa to ešte nebudem. V reálnom programovaní PHPčkom nevidím až také uplatnenie. A možno sa raz dostanem aj k tomu a ani nebudem vedieť ako.
|
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 Bydlisko: BA - WESTSIDE | Napísal p360t: 27.11.2009 20:52 | |
|
Ak dovolíte, niečo k tomu poviem aj ja.
Obhajovať použitie OOP v nejakom projekte, pretože má krajšiu syntax je úplná kravina. Syntax môže byť krajšia či škaredšia, ale na základe syntaxe sa nedá povedať, že tento prístup/jazyk je lepší ako druhý (aj brainfuck je Turing-complete, ale dôvod prečo v ňom nebudete písať riadenie križovatky nie je to, že jeho príkazy sú ničnehovoriace symboly < > + - . , [ ], ale to, že ich je len 8!). Navyše: Ďuri píše: Alebo si vytvoris jednotlive auta ako polia s X a Y suradnicou a budes pouzivat funkcie na posun, kde parameter bude musiet byt aj auto? Toto je len vecou syntaxe, väčšina jazykov s OOP prístupom pri volaní nestatickej metódy používa inštanciu objektu ako akýsi implicitný parameter, nie však Python. Z pohľadu syntaxe používa Python rovnaký prístup, ako ten, čo Ďuri vysmial. Sémanticky však de o dve úplne zásadne sa odlišujúce veci a sémantika je to čo sa počíta. Ten pravý dôvod, prečo niekde použiť OOP a inde nie je vysvetlený napr. tu. V konečnom dôsledku odpoveď na otázku Flety píše: Čo by si spravil v triede, čo by som nemohol spraviť vo funkcií? je nič; ale prakticky naozaj zložitejšie veci v OOP spravíš skôr, lepšie, kvalitnejšie a sémanticky prehľadnejšie vďaka intenzívnemu využívaniu vecí ako dedičnosť, polymorfizmus, zapuzdrenie atď...
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
Registrovaný: 26.11.06 Prihlásený: 22.01.24 Príspevky: 4118 Témy: 319 Bydlisko: HE/BA | Napísal Flety: 27.11.2009 20:59 | |
|
OK, takže keď sa začnem strácať vo svojich projektoch alebo uvidím, že funkciami to proste nejde tak začnem s OOP ale keďže OOP nedokáže z pohľadu funkčnosti nič viac ako procedúry/funkcie ostávam zatiaľ pri nich.
|
|
Registrovaný: 21.02.06 Prihlásený: 08.12.14 Príspevky: 5404 Témy: 30 Bydlisko: Bratislava | Napísal shaggy: 28.11.2009 1:14 | |
|
Ja sa tiež vo svojich osobných projektoch vyhýbam OOP, stále je pre mňa jednoduchšie urobiť si funkcie ako vytvárať nové a nové triedy. Ale napriek tomu som už pre určité zjednodušenie svojej práce dokončil niekoľko tried, ktoré neustále "recyklujem". A na toto sa práve OOP hodí, recyklovanie jednotlivých postupov - nemusíš vytvárať niečo, čo si už vytvoril. Aj keď rovnako dobre môžeš použiť nejakú hotovú funkciu, alebo časť kódu, častejšie sa mi tam objavovali chyby.
Tiež si musíš uvedomiť, že veľa moderných jazykov sú od základu objektovo orientované. Teraz sa venuješ PHP, ak sa začneš venovať objektom, budeš mať výhodu do budúcnosti. Napríklad ako ja - práca ma prinútila robiť v .NET a keďže som už predtým mal vedomosti o OOP (práve v php), tak to nie je pre mňa úplná španielska dedina.
Ale aby som to uzavrel, neber OOP ako všeliek a jedinú správnu cestu. Časom budeš sám vedieť rozpoznať, kedy sa ti oplatí napísať pár funkcií a tie spojiť dokopy, alebo si vytvoriť jednu veľkú triedu a tú použiť na stránke. Líši sa to od projektu a od tvojich potrieb.
_________________ Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme. |
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 |
Ja to vidím tak, že OOP nevytláča funkcie. Funkcie sú dobré na jednu jednuchú záležitosť, previsť dátum z timestamp v DB do času priateľného pre človeka. Tam dávať OOP by bolo nezmyselné, lebo nevyužiješ jeho výhody, iba sa viac napíšeš. Alebo si pozri stenleyho funkcie v často používaných scriptoch -> Pekné URL -> jednoduchá, jednoúčelová funkcie.
OOP používam vtedy ak sa na jednu vec viažiu dve a viac vecí, alebo rieši jednu zložitú vec. Napríklad: vytvorenie, kontrola a vymazanie tokenu alebo samotný template parser ( z iných tried viď. známy PHPmailer).
|
|
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| PHP OOP v PHP, ASP | 3 | 293 | 18.02.2013 7:20 DeiForm | | OOP PHP v PHP, ASP | 1 | 493 | 29.04.2010 17:32 stenley | | OOP v PHP v PHP, ASP | 1 | 858 | 02.06.2009 11:02 walther | | [PHP] OOP diskusia v PHP, ASP | 7 | 2452 | 30.03.2015 12:59 majky358 | | OOP PHP problémy začiatočníka v PHP, ASP | 11 | 471 | 13.11.2014 13:29 Mego | | database class, oop php v PHP, ASP | 10 | 783 | 16.02.2010 15:12 rooobertek | | PHP OOP MYSQLi Class v PHP, ASP | 6 | 654 | 08.04.2012 15:42 lolexc | | oop php - vyuzitie, vyhody [ Choď na stránku: 1, 2 ] v PHP, ASP | 32 | 2337 | 24.05.2008 15:04 Tominator | | oop v php - predavanie udajov v PHP, ASP | 1 | 349 | 16.02.2010 19:06 Ďuri | | OOP v PHP, ASP | 20 | 1387 | 29.02.2008 20:24 stenley | | OOP kniha v Assembler, C, C++, Pascal, Java | 3 | 541 | 02.12.2011 21:36 matwej | | Java OOP v Assembler, C, C++, Pascal, Java | 2 | 432 | 12.01.2018 14:33 camarovk19 | | OOP, premenna v PHP, ASP | 1 | 621 | 26.10.2009 21:44 rooobertek | | Lazarus OOP smernik v Delphi, Visual Basic | 0 | 522 | 30.03.2014 1:56 F3RY | | prihlasovanie, chyba, oop v PHP, ASP | 6 | 570 | 03.03.2011 14:52 janik366 | | OOP a konstruktor v PHP, ASP | 8 | 578 | 01.04.2008 17:06 vl4kn0 |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|