OOP – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

OOP – PHP – Fórum – Programujte.comOOP – PHP – Fórum – Programujte.com

 

Sopta0
Návštěvník
22. 3. 2008   #1
-
0
-

Zdravím.
Chtěl bych se zeptat, zda je při programování webů dobré používat OOP. Má nějaké OOP své výhody(nevýhody) nebo řeší lépe problémy.

Nahlásit jako SPAM
IP: 85.70.233.–
Sotolář Zdeněk
Orcslayer0
Stálý člen
22. 3. 2008   #2
-
0
-

OOP řeší problémy jinak - aneb stejného výsledku můžeš docílit i při funkcionárním programováním. Při OOP se objekty, které můžeš popsat i bez znalosti jejich vnitřního fungování, popisují právě dle toho, jak s nimi pracuješ. Objekt uživatel, má určité vlastnosti (např práva k určité činnosti, nastavení atd) a metody (lze ho smazat, vytvořit, editovat mu nastavení, měnit práva atd) a ty jsou zapouzdřeny v jeden celek. Ve funkcionárním programování pravděpodobně uděláš něco takovéhleho:

$uzivatel = "Lojza";

$uzivatel_status = getUserStatus($uzivatel);
$uzivatel_ikona = getUserIcon($uzivatel);
Zde jsou prostě dvě funkce, které spolu nijak nesouvisí, nijak se neovlivňují, každá hodí svůj dotaz na databázi, aby získala požadované info - teda leda by používaly data z nějaké globální proměnné, která by ještě musela být nastavena konstruktorem, fuj - na to je právě OOP. :)

V OOP je uživatel zapouzdřen do objektu:

$uzivatel = new User ("Lojza");

$uzivatel_status = $uzivatel->getStatus();
$uzivatel_ikona = $uzivatel->getIcon();
A teď už záleží jen na tom, jak naprogramuješ třídu User. Například už při vytvoření uživatele můžeš předpokládat, že s ním budeš chtět dělat i víc než, že ho vytvoříš - takže v rámci optimalizace pošleš jeden dotaz na server rovnou než abys posílal deset dalších později - vybereš si z db veškeré nastavení, statut atd (a uložíš si to do soukromých proměnných dostupných pouze uvnitř metod objektu) a pak už jen budeš vracet hodnoty pomocí funkcí (getterů).
Přístup k atributům samozřejmě může být i přímý - tzn atributy jsou public (veřejné i mimo práci uvnitř objektu) a pak získáš info o statu prostě takhle:

$uzivatel->status;

Většinou se ale atributy schovávají a přistupuje se k nim pomocí setterů a getterů v rámci uzavřenosti objektu - přece jen při nastavení nějaké hodnoty se ještě ukládá a toho lze docílit nejspolehlivěji přes set a get metody, jinak objekt nepozná, že se něco změnilo a že by měl něco provést (pominu magické metody).

OOP dle mého pomáhá lepšímu návrhu programu. Nutí člověka se nejdřív zamyslet nad tím, jak se s objektem bude pracovat - vnitřnosti až potom (a lépe).
// Můj subjektivní názor. :P :)
Samozřejmě OOP není žádnej univerzální lék, rvát ho všude je blbost.

Aneb viz http://objekty.vse.cz, php manuál a google - téma OOP vs jiné postupy už bylo propíráno dostkrát. :)

Nahlásit jako SPAM
IP: 85.70.82.–
Sopta0
Návštěvník
22. 3. 2008   #3
-
0
-

To Orcslayer : ok díky

Nahlásit jako SPAM
IP: 85.70.233.–
Sotolář Zdeněk
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, 58 hostů

Podobná vlákna

OOP? — založil Miro1701

OOP — založil Merik

Oop, — založil .

OOP — založil Zelenáč

 

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