Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Soutěž

Sponzorem soutěže je:

IDIF

 

Kdo je autorem výstavy obrazových fotografií „Očima Hanse Christiana Andersena“?

V dnešní soutěži hrajeme o:



Zavislost na vyssej vrstve

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

RE: Zavislost na vyssej vrstve

Autor: RSTEIN

8:20:03 22.12.2010

1) Takze SceneNode pouziva Root (jeho metody), ale Root nikdy s rozhranim sceneNode nepracuje a nevidi ho.
2) Z toho, co jste napsal, bude Root pravdepodobne pretizen odpovednostmi-vytvareni a sprava manazeru, prima komunikace se scenemanger apod. Zvazil bych treba, jestli Root musi aktualizovat Scene Manager (volat jeho metody), jestli by nebylo lepsi vyvolat (a musi udalost vyvolavat Root?), kterou manazeri odchyti atd.

Zdravim
Rene Stein
http://blog.renestein.net
twitter: http://twitter.com/renestein


Příspěvek zaslán emailem

Citovat příspěvek

 

RE: Zavislost na vyssej vrstve

Autor: RSTEIN

8:13:59 22.12.2010

Příspěvek zaslán emailem

Citovat příspěvek

 

Re: Zavislost na vyssej vrstve

Autor: laci159

8:04:29 22.12.2010

K bodu 2)

Neviem ci je presny vyraz, ze SceneNode zavisi na Root, ale je to navrhnute nasledovne,
Root obsahuje SceneManager, SceneManager obsahuje SceneNode
Root updatne SceneManager, SceneManager updatne SceneNode.
Takze vlastne Root dava nepriamo pokyn SceneNode aby sa updatol
A takisto SceneNode potrebuje sluzby Roota aby sa dostal k dalsim Managerom

Citovat příspěvek

 

RE: Zavislost na vyssej vrstve

Autor: RSTEIN

7:12:08 22.12.2010

Dobry den,
z vaseho popisu bych rekl, ze u vas dochazi k cirkularnim zavislostem mezi tridami ve stejne vrstve. Predpokladam ale, ze root, manazery i treba objekty sceny povazujete za objekty ve stejne vrstve.
BTW: Pisete to v C++?

1) Zvazil bych vytvoreni roota (to je vlastne repozitar sluzeb (service locator) ne?), ktery ma metodu GetService misto specializovanych metod GetScreenManazerXY.

2) Nerozumim tomu, proc by mel mit root zavislost treba na objektech screen node. Z vaseho popisu mi prislo, ze ty by mely byt zavisle na sluzbach roota, ale nevim, proc by mel byt root zavisly na nich.

3) Singletony i service locatory byvaji, a pravem, povazovany za antivzory a zavislosti tohoto typu je vhodne resit pomoci DI kontajneru. Oddeleni rozhrani od implementujicich trid je samozrejme v(y)hodne.

Zdravim
Rene Stein
http://blog.renestein.net
twitter: http://twitter.com/renestein

Příspěvek zaslán emailem

Citovat příspěvek

 

Zavislost na vyssej vrstve

Autor: laci159

6:18:22 22.12.2010

Mam problem s navrhnutim arhitekturi herneho enginu, situacia je nasledovna

Mame managerov, napr. SceneManagera, InputManagera. Kazdy z tychto managerov je singleton. Staticky objekt Root spravuje tychto managerov, vytvori ich, updatuje, zrusi a poskytuje pristup k nim - GetManagerXYZ.

Kazdy manager spravuje urcitu skupinu objektov, zmieneny SceneManager spravuje napr. SceneNode - uzly sceny do ktorych su umiestnovane viditelne objekty sceny.

SceneNode a viditelne objekty sceny vyuzivaju Root pre pristup ka managerom, napr. nejaky SceneNode chce zistit ci je stlaceny Enter, tak nato vyuzije InputManagera.

Dostavam sa tak do situacie, ze Root obsahuje vsetky interface managerov + objekty s ktorymi manageri pracuju, teda aj zmieney SceneNode. SceneNode zase obsahuje interface Roota aby mohol pristupovat k managerom. Dostavam sa tak k uzavrenemu kruhu z ktoreho sa neda uniknut.

Jedine co ma napadlo je, ze Interface Roota budem vkladat len do zdrojovych suborov Managerov, SceneNode, ...

Neviem, ci je to zrovna otazka na OOP, ale nedochadza tu k zavislosti nizsich vrstiev na vyssich ?

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: