Avatar
naruto987
Člen
Avatar
naruto987:

Zdravím,
díky itnetwork jsem konečně pochopil oop, jak to funguje, v čem tkví výhody a tak dále. Okamžitě mě to zaujalo, a začal jsem programovat objektově. Ale...
Když jsem tak studoval dál a dál, začal jsem (též zde) nacházet věci jako MVC, UML, PDO, Návrhové vzory, a pod.

Když jsem si o tom všem přečetl, šla mi z toho hlava kolem a já jsem se začal bát, že nepochopím, jak to všechnou zkloubit dohromady. S PDO není problém, ale už třeba MVC moc nerozumím. Jak zkloubit právě ty kontrolery, modely a pod. s další funkčností stránky-např. njaké knihovny, kde budou další třídy, které třeba nebudou úplně souviset práve s návrhem MVC webu.

Potřeboval bych ale poradit konkrétně s těmato věcma týkající se OOP.

1. Zkoušel jsem si udělat jen tak Knihovnu, kde mám třídu Knihovna, ve které mám metody login(), register(), a pod. a otázka zní, jestli by neměla být právě tyto metody udělány spíše jako třídy. Někde to totiž vidím tak, že je to jen součást nějaké třídy, a jindě zase je to samostatná třída.
Stejně tak třeba budu mít třídu Čtenář a Knihovna. Kam bych měl zařadit metodu pridejKnihu() ?

2. Když budu mít například třídu Knihovna, dke bude metoda login(), která při přihlášení vytvoří objekt Člen, tak kam ten objekt mám uložit, abych mohl volat jeho metody po celou dobu, co je ten člověk přihlášený? Uložit objekt do session mi přijde jako neskutečná prasárna (funguje to), ale je to hnus :D

3. Zkoušel jsem si udělat nějakou textovou hru. Jako každá hra i ta moje potřebuje být nějak obsluhována. Nejlépe přes tlačítka jako např Postav budovu, vylepši budovu a pod. Jenže ke každému tlačítku musím vytvořit form, a nějakej if(isset($_POS­T['jmeno_formu'])) + třeba ještě ověření, jestli, když je tam i textové pole, není napsána nejaká blbost a to začne být brzy značně nepřehledné a nemyslím si že se to takto dělá. Určitě musí být nějaké normální řešení.

4. Kde můžu držet vytvořenou instanci?

Moc děkuju všem, kteří mi poradí nějaké dobré řešení, případně mi dají nějakou konstruktivní radu.

 
Odpovědět 26.2.2015 22:33
Avatar
naruto987
Člen
Avatar
Odpovídá na naruto987
naruto987:

Omlouvám se, při psaní jsem zapoměl na titulek :(

 
Nahoru Odpovědět 26.2.2015 22:35
Avatar
Pavol Hejný
Redaktor
Avatar
Odpovídá na naruto987
Pavol Hejný:

Ahoj, možná neodpovím úplně přesně, ale podle příkladů :) :

  1. Obecně bych doporučoval nakreslit si fungování aplikace na papír a podívat se na to logicky. Držet se striktně nějakého modelu nebo na sílu používat OOP může vést k hrozným výsledkům. Sám jsem viděl použití OOP způsobem, který byl úplně na hlavu

2)Můžeš si udělat objektu, který při inicializaci načte pomocí nějakého ID data z databáze a při ukončení spojení je tam zase updatuje. Samozřejmě místo DB můžeš použít soubory. SESSION jsou vpodstatě pomocné soubory se serializovanými proměnnými.

  1. Např.: Udělej si nějakou kontrolní funkci, která v případě chyby vrátí její text a pokud je vše OK, vrátí true.
  2. Já osobně používám DB
Nahoru Odpovědět 10.3.2015 0:20
http://pavolhejny.cz/
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.